Tam began his football career with Grangemouth Boys Club before joining his home town club Falkirk's youth programme in 2000. He made his debut at age 18 against Dundee United in July 2006 and very quickly became a mainstay for The Bairns at full back. His form earned him caps for Scotland at U19 and U21 level. He played for four seasons in the top flight for Falkirk before their relegation in 2004 and two seasons later he left at the end of his contract to join St Johnstone.
At McDiarmid Park, Tam was hampered by injury throughout most of his time with the Saints, but despite that made over 120 appearances, including several in the Europa League during the 2013-14 and 2014-15 seasons. A contract extension in 2015 saw him remain there for a further two seasons, before he left the club.
In June 2017, Tam joined United on a two year deal.