A cross-layer design along with an optimal resource allocation framework is formulated for wireless fading networks, where the nodes perform network coding. The aim is to jointly optimize end-to-end multicast rates, network code design variables, broadcast link flows, link capacities, average power consumption, and short-term power allocation policies. As in the conventional routing paradigm, the cross-layer optimization problem with network coding is non-convex in general. It is proved however, that dual decomposition is optimal so long as the fading at each wireless link is a continuous random variable. This result is leveraged to develop a subgradient algorithm for network control. The algorithm is asynchronous, whereby the dual updates at the physical layer can be affordably performed with a certain delay with respect to the resource allocation tasks in upper layers. Moreover, the long-term average values of multicast end-to-end rates, virtual flows, broadcast link flows, link capacities, and power consumption are shown to converge to near-optimal ones.