Welsh joined the club at only 10-years-old and went on to captain England at various levels as well as Liverpool reserves. He is a small powerhouse of a central-midfielder and strong in the tackle. Welsh may be quiet off the field, but it's a different story on the field. After only a couple of first-team appearances Welsh featured in a few cup games as well as starting two League games in the 2004/05 season. It was, however, clear that Welsh would have to leave his beloved Liverpool for regular football and he was swapped with Hull's Paul Anderson in January 2006. After making 50 appearances in the Championship in two seasons, Welsh was loaned out to Chester City, Carlisle United and Bury. Hull City released Welsh on 2 June 2009.
On 13 July 2009 Welsh became one of the first signings to be made by new Tranmere Rovers manager and former Liverpool player John Barnes. Welsh survived the cull that saw the management duo of Barnes and Jason McAteer leave the club in October 2009 with their replacement being a man already employed by Rovers, physiotherapist Les Parry. Welsh played in 45 League matches plus six cup-ties in 2009/10, also winning the club's Goal of the Season award for a long-range strike against Gillingham. The captain at Prenton Park rejected a new deal at Tranmere and joined fellow League One side Preston North End in May 2012.
Welsh played in thirty-six of Preston's forty-six League One matches in 2012/.13, scoring once. In the following season he made forty-five first-team appearances for the Lilywhites, scoring twice. The midfielder also added an extra year to his Preston contract, which would now take up him up to the end of the 2014/15 season. After helping Preston to promotion via the play offs in 2014/15 he was rewarded with a new two year contract, although he was in and out of the side for the first year of this, making just thirteen starts and coming off the bench eleven times.
For the next two seasons Welsh rarely featured at Preston due to injuries and others being ahead of him but he remained a popular member of the squad. His departure was announced prior to the end of 2018-18 so he could be given a proper farewell by the fans. He then dropped two divisions, joining Grimsby Town in League Two where he was immediately installed as club captain.