We give expressions for the singular vectors in the highest weight representations of the Virasoro algebra. We verify that the expressions - which take the form of a product of operators applied to the highest weight vector - do indeed define singular vectors. These results explain the patterns of embeddings amongst Virasoro algebra highest weight representations.