Prior to making his debut for Northamptonshire Swann had represented England at under-15 level and made appearances for Bedfordshire in the minor counties championship. Having scored centuries for Northamptonshire in consecutive second XI matches at the start of the 1996 season he was given his first-class debut against Oxford University, scoring an unbeaten 76 in the second innings. Later in the season he appeared for England Under-19s against New Zealand before making his County Championship debut against Gloucestershire. Swann continued to play mostly second XI cricket in 1997 but made two first-class appearances at the end of the season. In the second of these he scored his maiden first-class century, batting at number three against Warwickshire at Edgbaston he made 136. He began the following season in the first team but poor form led to him returning second XI cricket. After scoring three centuries in four innings at that level he returned to the first team where he scored 85 against Kent, this was his only first-class fifty of the season. Swann continued to switch between the first and second teamin 1999 although he showed improved form, in 12 first-class matches he scored 573 runs at an average of 31.83. Playing against Nottinghamshire in June he scored a career-best 154 and shared a 217-run partnership with Matthew Hayden in the process, despite this he returned to second XI cricket the following week. He made his List A debut against Nottinghamshire a month later, scoring 74 as opener and again sharing a century partnership with Hayden. In 2000 Swann made only three first-class appearances and after a poor 2001 season in which he averaged 21.77 from 13 matches he was released by the club.
Lancashire
In January 2002 Swann was signed by Lancashire to strengthen their batting options following the retirement of Mike Atherton. Swann was a regular opener during the 2002 season playing 18 first-class matches and scoring 1,073 runs at 37.00. His tally was the first and only time he reached a 1,000 runs in a season and included two centuries, both against Yorkshire. Innings of 128 and 111 made him the first Lancastrian to score centuries in his first two Roses matches. The following two seasons were less successful for Swann, in 15 first-class matches he scored 467 runs at 21.22. He was released by the club at the end of 2004 season.