We consider a make-to-stock manufacturing system selling multiple products to price-sensitive customers. The system manager seeks to maximize the long-run average profit by making dynamic pricing, outsourcing, and scheduling decisions. First, she adjusts prices dynamically depending on the systemstate. Second, when the backlog ofwork is judged to be excessive, she may outsource new orders, thereby incurring outsourcing costs. Third, she decides dynamically which product to prioritize in the manufacturing process (i.e., she makes dynamic scheduling decisions). This problem appears analytically intractable. Thus, we resort to an approximate analysis in the heavy traffic regime and consider the resulting Brownian control problem. We solve this problem explicitly by exploiting the solution to a particular Riccati equation. The optimal solution to the Brownian control problem is a two-sided barrier policy with drift rate control. Outsourcing and idling processes are used to keep theworkload process above the lower reflecting barrier and belowthe upper reflecting barrier, respectively. Between the two barriers, a state-dependent drift rate is used to control the workload. By interpreting this solution in the context of the originalmodel, we propose a joint dynamic pricing, outsourcing, and scheduling policy, andwe demonstrate its effectiveness through a simulation study.