In this paper, we propose a novel communication strategy which incorporates physical-layer network coding (PNC) into multiple-input multiple output (MIMO) two-way relay channels (TWRCs). At the heart of the proposed scheme lies a new key technique referred to as eigen-direction alignment (EDA) precoding. The EDA precoding efficiently aligns the two-user's eigen-modes into the same directions. Based on that, we carry out multi-stream PNC over the aligned eigen-modes. We derive an achievable rate of the proposed EDA-PNC scheme, based on nested lattice codes, over a MIMO TWRC. Asymptotic analysis shows that the proposed EDA-PNC scheme approaches the capacity upper bound as the number of user antennas increases towards infinity. For a finite number of user antennas, we formulate the design criterion of the optimal EDA precoder and present solutions. Numerical results show that there is only a marginal gap between the achievable rate of the proposed EDA-PNC scheme and the capacity upper bound of the MIMO TWRC, in the median-to-large SNR region. We also show that the proposed EDA-PNC scheme significantly outperforms existing amplify-and-forward and decode-and-forward based schemes for MIMO TWRCs.