The vehicle routing problem with private fleet and common carrier (VRPPC) is a generalization of the classical vehicle routing problem in which the owner of a private fleet can either visit a customer with one of the owner's vehicles or assign the customer to a common carrier. The latter case occurs if the demand exceeds the total capacity of the private fleet or if it is more economically convenient to do so. The owner's objective is to minimize the variable and fixed costs for operating the owner's fleet plus the total cost charged by the common carrier. This family of problems has many practical applications, particularly in the design of last-mile distribution services and has received some attention in the literature, in which some heuristics were proposed. We extend here the VRPPC by considering more realistic cost structures that account for quantity discounts on outsourcing costs and by considering time windows resulting in a rich VRPPC (RVRPPC). We present an exact approach based on a branch-and-cut-and-price algorithm for the RVRPPC and test the algorithm on instances from the literature.