The multi-pile vehicle routing problem is a particular combination of loading and routing problems, in which items have to be loaded into different piles within vehicles, and then delivered with minimum cost. The problem is motivated by a real-world timber distribution problem, and is of both theoretical and practical interest. In this paper, we first develop heuristic and exact methods to solve the loading problem. We then include these methods into a tailored combination of Variable Neighborhood Search and Branch-and-Cut, to solve the overall problem. Extensive computational results show how the resulting algorithms are capable of solving to optimality a large number of small-size instances, and of consistently outperforming previous algorithms from the literature on large-size and real-world instances.