In this paper, we develop a cross-layer algorithm to minimize energy consumption in multi-hop wireless networks with finite buffers. Our algorithm guarantees a flow-based minimum data rate and a deterministic buffer size upper-bound for individual flows at network nodes. The algorithm jointly integrates congestion control, power allocation, routing and link rate scheduling. In addition, the algorithm achieves a power expenditure "epsilon-close" to the optimal value, with a tradeoff of order O(1/epsilon) in the buffer size. Finally, numerical results are presented to show the proximity to optimality with a significant reduction in queue backlog.