Massive multiple-input multiple-output (MIMO) systems achieve high sum spectral efficiency by offering an order of magnitude increase in multiplexing gains. In time division duplexing systems, however, the reuse of uplink training pilots among cells results in additional channel estimation error, which causes downlink inter-cell interference, even when large numbers of antennas are employed. Handling this interference with conventional network MIMO techniques is challenging due to the large channel dimensionality. Further, the implementation of large antenna precoding/combining matrices is associated with high hardware complexity and power consumption. In this paper, we propose multi-layer precoding to enable efficient and low complexity operation in full-dimensional massive MIMO, where a large number of antennas is used in two dimensions. In multi-layer precoding, the precoding matrix of each base station is written as a product of a number of precoding matrices, each one called a layer. Multi-layer precoding (i) leverages the directional characteristics of large-scale MIMO channels to manage inter-cell interference with low channel knowledge requirements, and (ii) allows for an efficient implementation using low-complexity hybrid analog/digital architectures. We present a specific multi-layer precoding design for full-dimensional massive MIMO systems. The performance of this precoding design is analyzed and the per-user achievable rate is characterized for general channel models. The asymptotic optimality of the proposed multi-layer precoding design is then proved for some special yet important channels. Numerical simulations verify the analytical results and illustrate the potential gains of multi-layer precoding compared to traditional pilot-contaminated massive MIMO solutions.