This paper considers the problem of joint congestion control and scheduling in wireless networks with quality-of-service (QoS) guarantees. Different from per-destination queueing in the existing works, which is not scalable, this paper considers per-link queueing at each node, which significantly reduces the number of queues per node. Under per-link queueing, we formulate the joint congestion control and scheduling problem as a network utility maximization (NUM) problem and use a dual decomposition method to separate the NUM problem into two subproblems, i.e., a congestion control problem and a scheduling problem. Then, we develop a sliding-mode-based (SM) distributed congestion control scheme and prove its convergence and optimality property. Different from the existing schemes, our congestion control scheme is capable of providing multiclass QoS under the general scenario of multipath and multihop; in addition, it is robust against network anomalies, e.g., link failures, because it can achieve multipath load balancing.