The Network Utility Maximization (NUM) has been extensively used in both wired and wireless networks and has been very helpful to provide insight on optimal controls of various parameters such as power, scheduling and rate control. However, the popular opportunistic scheduling mechanism, that improves the system performance by exploiting time varying channel conditions at different receivers, has not been incorporated in the framework yet. In this paper, we extend the framework and derive optimal flow control and link scheduling for wireless multi-hop networks with opportunistic scheduling. More precisely, we formulate the NUM problem with new resource constraints to include the benefits of opportunistic scheduling and then proceed to solve the problem. The formulation turns out to be a non-convex problem, however we propose an algorithm that approximates the optimum solution. Numerical results show that the proposed algorithm achieves significant throughput gain.