A linear polarization field on the sphere can be uniquely decomposed into an E-mode and a B-mode component. These two components are analytically defined in terms of spin-2 spherical harmonics. Maps that contain filtered modes on a partial sky can also be decomposed into E-mode and B-mode components. However, the lack of full sky information prevents orthogonally separating these components using spherical harmonics. In this paper, we present a technique for decomposing an incomplete map into E and B-mode components using E and B eigenmodes of the pixel covariance in the observed map. This method is found to orthogonally define E and B in the presence of both partial sky coverage and spatial filtering. This method has been applied to the BICEP2 and the Keck Array maps and results in reducing E to B leakage from LCDM E-modes to a level corresponding to a tensor-to-scalar ratio of $r<1times10^{-4}$.