Williamson started his career at Mansfield Town, making 165 appearances in his stay at Field Mill. He then moved to Northampton Town early in the 2004–05 season where he quickly established himself as an automatic choice in the first team where he scored two goals. Williamson then joined Rotherham United in the summer of 2005, and once again established himself in first team.
Watford
He completed a move to Watford along with teammate Will Hoskins for a combined fee of £1.2 million on 5 January 2007. On 31 January 2007 he played his first Premier League match for Watford against Manchester United. Williamson scored three times in his first season at Vicarage Road but was then loaned to Preston North End at the end of March until the end of the 2008–09 season. He scored his only Preston goal on 18 April 2009 against Cardiff City which rounded off a 6–0 win at Deepdale.
Sheffield United
Williamson signed with Sheffield United for an undisclosed fee, believed to be around £500,000, during the 2009 close season. Having suffered a back injury in pre-season Williamson found himself sidelined until the end of October and had to wait until December to score his début goal for the club against Crystal Palace. He continued to be dogged by injuries during his first season with the Blades and eventually returned for a second operation on his back in the close season. This time, however, Williamson almost died after suffering complications during the operation. He was placed on a life support machine for two days after contracting an infection. Commenting at the time, then Blades Manager Kevin Blackwell said: "He was placed on life support. He's a very lucky lad to be alive." On 26 July 2012, on Sheffield United's pre-season tour of Malta, manager, Danny Wilson confirmed Williamson would not sign a new deal with the club and had subsequently been told to stay away from training with the squad. Despite this Wilson refused to rule out Williamson signing a new deal.
Portsmouth
On 16 August 2012, Williamson signed a one-month deal with Portsmouth. In January 2013 he was released by Portsmouth along with 5 other players due to financial reasons.
Williamson signed for Championship side Blackburn Rovers in an 18-month deal on 8 February 2013. He made his debut away at Arsenal in the fifth round of the FA Cup, playing the whole match in gloves alongside Jason Lowe as his new team produced a surprise 1–0 win, courtesy of a late Colin Kazim-Richards goal. On 14 September 2013, Williamson was red-carded in the East Lancashire derby against Burnley after fouling striker Danny Ings in a last man situation during injury time with the scores level at 1–1. This was well received by the fans of Blackburn Rovers as an admirable and selfless piece of good play for the sake of the team, preventing the first local derby defeat for 35 years. Williamson was roundly applauded for stopping Danny Ings being clean through.
On 25 July 2016 Williamson signed for Burton Albion on a one-year deal. He was released at the end of the 2016–17 season.
International career
On 23 May 2008, Williamson was included in a 28-man squad to play for Jamaica. He was again called up in 2015 by Winfried Schäfer, to feature as part of Jamaica's first 2018 FIFA World Cup qualifying squad. He made his international debut on 8 September 2015, playing the full 90 minutes for Jamaica as they beat Nicaragua4–3 on aggregate to advance to the Fourth CONCACAF Round of qualifying.