Marsh was born in Truro, Cornwall and raised in Sennen, a Cornish village, and Woolwich, a district in southeast London. In Woolwich, he lived in a "miserable council flat" with his family.
Marsh won a scholarship to the University of Oxford. As an undergraduate, he studied at St Catherine's College, Oxford and graduated with a degree in English.