Shaw started playing rugby at the age of 16. He played in Otago, New Zealand for a year before returning to play for Cranleigh RFC and then Bristol, where he stayed for four years before joining London Wasps in 1997.
He won his first England cap against Italy in 1996 and then started all the Five Nations matches that year. before going on the Tour of Hell to the South Africa in 1998
His England career stalled until 2000 when he stood in for the injured Martin Johnson in the Lloyds TSB 6 Nations and appeared as a replacement in the summer Tour to South Africa.
His outstanding form for London Wasps saw him still involved with England in 2002 and he played a part in all three RWC warm-up games. He went out to New Zealand on the 2005 Lions Tour as a replacement. A replacement for most of the 2006 RBS 6 Nations before starting against Ireland, he missed the 2007 tournament but was named in the RWC squad in 2007.
His partnership with Steve Borthwick saw him start 14 of 15 matches for England before the 2008 autumn internationals. He made one appearance during the autumn series, as a replacement against South Africa, and would have to wait until March before being selected for his next cap against France at Twickenham in the 2009 RBS 6 Nations Championship.