To reduce the redundant control overhead in the process of creating downstream routes and the mechanism of updating energy information, a Cross-layer Energy-efficient Bidirectional Routing(CEBR) algorithm is proposed. CEBR establishes downstream routes from the sink node to sensor nodes by the means of source routing and obtains the information of nodes residual energy through cross-layer information sharing. An integrated routing criterion which includes hop counts and nodes residual energy is designed to balance nodes energy consumption. In addition, a power control mechanism is presented to save nodes energy based on Received Signal Strength Indication (RSSI). Theoretical analysis verifies the effectiveness of CEBR. Also, simulation results show that CEBR reduces at least 34.5% of the normalized control overhead and 27.12% of the average energy consumption of a data packet, and extends the network lifetime by at least 18.98%, as compared to the existing classic algorithms.