This paper studies a vehicle routing problem with soft time windows and stochastic travel times. A model is developed that considers both transportation costs (total distance traveled, number of vehicles used and drivers' total expected overtime) and service costs (early and late arrivals). We propose a Tabu Search method to solve this model. An initialization algorithm is developed to construct feasible routes by taking into account the travel time stochasticity. Solutions provided by the Tabu Search algorithm are further improved by a post-optimization method. We conduct our computational experiments for well-known problem instances. Results show that our Tabu Search method performs well by obtaining very good final solutions in a reasonable amount of time.