To study multi-radio multi-channel (MR-MC) Ad Hoc networks based on 802.11, an efficient cross-layer routing protocol with the function of joint channel assignment, called joint channel assignment and cross-layer routing (JCACR), is presented. Firstly, this paper introduces a new concept called channel utilization percentage (CUP), which is for measuring the contention level of different channels in a node’s neighborhood, and deduces its optimal value for determining whether a channel is overloaded or not. Then, a metric parameter named channel selection metric (CSM) is designed, which actually reflects not only the channel status but also corresponding node’s capacity to seize it. JCACR evaluates channel assignment by CSM, performs a local optimization by assigning each node a channel with the smaller CSM value, and changes the working channel dynamically when the channel is overloaded. Therefore, the network load balancing can be achieved. In addition, simulation shows that, when compared with the protocol of weighted cumulative expected transfer time (WCETT), the new protocol can improve the network throughput and reduce the end-to-end average delay with fewer overheads.