In this paper, we analyze the shapes of forward curves and yield curves that can be attained in the two-factor Vasicek model. We show how to partition the state space of the model, such that each partition is associated to a particular shape (normal, inverse, humped, etc.). The partitions and the corresponding shapes are determined by the winding number of a single curve with possible singularities and self-intersections, which can be constructed as the envelope of a family of lines. Building on these results, we classify possible transitions between term structure shapes, give results on attainability of shapes conditional on the level of the short rate, and propose a simple method to determine the relative frequency of different shapes of the forward curve and the yield curve.