Main began his senior football career in the Highland League, for whom he made his debut as a 15-year-old for his hometown team Lossiemouth, transferring to Elgin City during the 1986–87 season.
He began his second spell with St Johnstone in 2007, and during the 2008–9 season helped them win promotion to the Scottish Premier League as well as breaking the club's all-time appearance record.
[3] Main signed for Dundee United's Tayside rivals St Johnstone in 1995 for £150,000[4] as competition for Saints' then first-choice goalkeeper Andy Rhodes.
[7] In February 2004, Main was one of a number of players affected by financial problems at Livingston and was asked to take a pay cut to remain at the club.
[11] On 6 March 2007, two months before Gretna's promotion to the top flight, it was announced that Main had signed a pre-contract agreement with his former club St Johnstone on a two-year deal.
He also signed a one-year contract extension until May 2010, making him a part of the squad promoted back to the Scottish Premier League for the first time in seven years.
During this run in the team Main saved a Derek Riordan penalty in a 3–1 win over Hibernian in the Scottish League Cup.
[14] Main remained on the substitutes' bench after Smith made his way into the starting line-up, and was released by St Johnstone at the end of the 2009–10 season,[15] having become the player with the most appearances for the club (361).
[16] In recognition of his achievements and services to St Johnstone over his two spells at the club, a series of events were planned for throughout 2010 as part of Main's testimonial year.
Main joined Rangers in January 2011 as temporary cover for goalkeeping coach Jim Stewart, who was undergoing knee surgery.
[19] In June 2022, Main was appointed first-team goalkeeping coach at Dunfermline Athletic, joining James McPake's backroom team.