Load balancing is an effective approach to address the spatial-temporal fluctuation of mobile traffic in cellular networks. However, existing schemes that rely on channel borrowing from neighboring cells cannot be directly applied to current LTE-A systems where all cells are deployed with the same spectrum band. In this paper, we consider a multi-cell OFDMA network, where Device-to-Device (D2D) communication is opted for load balancing without the need of extra spectrum. Specifically, the traffic can be steered from a congested cell to another underutilized cells by D2D communications. The problem is naturally formulated as a joint resource allocation and D2D routing problem that maximizes the system sum-rate. In particular, we formulate the resource allocation as a Monotonic optimization problem and the D2D routing as a complementary Geometric Programming problem. The two subproblems are solved iteratively to obtain the joint resource allocation and D2D routing solution. Simulation results demonstrate that the D2D load balancing can improve the system sum-rate efficiently.