Before turning professional Moxon worked for Barclays Bank.
Moxon earned 10 caps through his Test career that was delayed by injury. He was due to play against the West Indies in 1984, but a broken arm meant that his debut was delayed until the 1986 series against New Zealand. In the intervening time, Moxon was chosen for the 1984/5 tour of India and Sri Lanka, but the premature death of his father forced him to miss early matches, by which time, Tim Robinson had cemented his place as Graeme Fowler's opening partner. Moxon did make his ODI debut later in the tour.
When his Test debut finally did come, he took his chance well. As Graham Gooch's fourth opening partner of the Test and ODI summer, Moxon took on a New Zealand side that boasted Richard Hadlee. Wisden Cricket Monthly described Moxon as batting with "little panache, but a lot of polish" during a maiden innings of 74, which was ended when a Hadlee off cutter squeezed through his gate. In the second innings at Lord's and during the second Test at Trent Bridge, Moxon was unable to build on his promising start, and was left out of the side for The Oval, having scored 111 runs in his first four innings, at an average of 27.75.
The winter touring party for the trip to Australia in 1986/7 was far from settled in advance. Chris Broad was recalled after a two-year absence, Wilf Slack brought back having missed all but one Test during the summer, and Bill Athey was included as an 'auxiliary' batsman. The choice of two left-handers at the top of England's order highlighted the fact that Australia's big threat came from the battery of left arm seamers available to them, led by Bruce Reid. In the event, Slack played very little cricket. Both Athey and Broad flourished as an opening pair, Broad going on to be named as the International Cricketer of the Season. Moxon had to wait until the last Test of 1987 for a recall. Such were England's selection uncertainties that Tim Robinson had been recalled again in the intervening time.
Moxon is known as perhaps the unluckiest member of the '99 club' in that, early in his innings against New Zealand in 1987-88, he swept three runs seemingly off the middle of the bat only for the umpire to signal leg byes. Moxon fell for 99, and would become one of eight Test batsman to make 99 but not a century.
In June 1988, Moxon was recalled to the test side at Lord's in place of Mike Gatting to bat at number 3. By this time, television commentators such as Tom Graveney had begun to spot a discernible hole in Moxon's technique: When playing forward his left knee would not come forward quite far enough creating a small "gate". Malcolm Marshall exploited this in the Old Trafford test of that series bowling Moxon "through the gate".
Moxon can perhaps be considered unlucky - his 99 above is one example. Another would be his final test match. Batting just before lunch on day 3 having fielded for 2 days as Australia made 600 at Trent Bridge in 1989, Moxon faced a near impossible ball from Terry Alderman which swung considerably and he was caught at second slip - Moxon doing quite well to edge it. In the second innings he received a "grub hunter" (a ball that kept very low) to be bowled. Moxon never played for England again.
Very much in the mould of Geoffrey Boycott, Moxon was a model professional and was probably unlucky to be seldom given an extended run in the England test side of the late 1980s.
Moxon's county career spanned seventeen seasons with Yorkshire, where he scored over 21,000 first-class runs. He began his career with two centuries in his first two home County Championship matches, and it was not long before his elegant driving saw him earmarked for England honours. He established a reliable opening partnership with Ashley Metcalfe, and later captained the county with dignity.
Upon retirement, he went on to become Director of Coaching at Yorkshire, before moving on to coach Durham in 2001. Upon his resignation on 1 March 2007, he returned to Yorkshire County Cricket Club as the Club's Director of Professional Cricket. In 2014 he oversaw Yorkshire's first County Championship title since 2001.