McPhail was born in Westminster, London, and raised in Dublin, Ireland.
McPhail started his career by coming through the youth ranks at Leeds United. His playing style led former Arsenal manager George Graham to christen him "the new Liam Brady". He began to make an impact on the first team during the 1997–98 season, making his debut in February 1998 against Leicester City, and went on to make several substitute appearances that campaign. The highlight of his debut season was a 50-yard lob pass to Leeds and future Cardiff City teammate Jimmy Floyd Hasselbaink, which some Leeds fans described as "one of the passes of the season".
He started to become a regular for the side during the 1999–2000 season, after making several sub appearances, when he was given a long run in the first team squad. McPhail was rewarded with a new five-year contract at the Yorkshire club soon after. McPhail got his first Leeds goals in a league match against Chelsea at Stamford Bridge.
After manager David O'Leary left, Leeds went on to have several different managers over the next few years. During this time, McPhail was hampered by injury, making it difficult to break into the team under Terry Venables or his successor Peter Reid. He was loaned out to Millwall as a means of maintaining match fitness. A second loan, this time at Nottingham Forest, could have been made permanent as both McPhail and Forest manager Paul Hart felt the move would be beneficial to his career, but Leeds rejected Forest's bid. During his time at Leeds, McPhail was involved in the club's 2000–01 UEFA Champions League run, appearing in memorable games against the likes of Barcelona and Lazio as Leeds reached the semi-finals.
McPhail left Leeds in July 2004 to sign for Barnsley on a free transfer, becoming the first international player from Ireland to sign for the club since Gary Fleming in 1990. McPhail made seventy-nine appearances for the Oakwell club in two seasons of League One football, the culmination of which coming with a victory over Swansea City in the League One Play-off Final at the Millennium Stadium. McPhail's Barnsley contract expired the following summer, and the midfielder departed the newly promoted club.
Cardiff City saw off competition from numerous other clubs to secure McPhail's services. McPhail was an ever-present for Cardiff during his first season in Wales, and impressed to such an extent that he was handed a longer-term deal the following July. During the injury-forced absences of club captain Darren Purse and vice-captain Riccardo Scimeca, McPhail stood in as the club's skipper. On 27 October 2007 he scored for Cardiff for the first time by finding the net in a 1–1 draw with Scunthorpe United.
On 30 November 2007, after an indifferent opening to the Bluebirds' campaign, McPhail spoke to local paper the South Wales Echo, claiming that the teams poor start was "all his fault". McPhail found the net twice within the space of two months with goals against Hull City and Blackpool in the Championship. McPhail also had the honour of leading Cardiff City out at Wembley for the FA Cup Final, where City were beaten by a goal to nil by Premier League side Portsmouth.
The start of the 2008–09 season saw McPhail make his one hundredth appearance in all competitions for Cardiff in a 1–1 draw with Doncaster Rovers on 16 August. Two months later, he completed a centenary of league appearance in a 2–1 defeat against Wolverhampton Wanderers. On 23 September, Cardiff met rivals Swansea City in a League Cup encounter at the Liberty Stadium in the first South Wales derby to take place in seven years. McPhail was sent off in the 75th minute for a second bookable offence, as Jordi Gomez's goal won the tie for Roberto Martínez's Swansea. McPhail was dismissed once again when the two sides met at the same venue in the league, again for collecting two yellow cards. Cardiff manager Dave Jones publicly criticised McPhail, stating that "he probably cost us all three points", in his post-match press conference.
McPhail picked up an injury early on in the 2009–10 season, keeping him out of the side for one month. Returning to the side on in the league encounter with Reading, McPhail was sent off for a foul on Jem Karacan. Following the end of his suspension, McPhail returned in a thumping 6–1 win against Derby County at Cardiff City Stadium, playing a part in four of City's goals. Four weeks later, he fell victim to another injury while playing against Nottingham Forest. He was originally scheduled to be out for between six and eight weeks but, on 20 November 2009, he was diagnosed with lymphoma, the disease forcing him to miss a considerably longer period. McPhail returned to Cardiff's starting eleven on 5 February 2010 in a 5–1 defeat to Newcastle United, playing 75 minutes before being substituted.
In the summer of 2011, McPhail changed his number to thirty-seven, the number he wore in his first season as a professional with Leeds United. After missing the first month of the 2011–12 season, McPhail returned in a Football League Cup game against Leicester City, to be taken off after 29 minutes with a groin injury. He returned from the injury in October, when he made the bench on 18 October against Peterborough United. Despite a difficult season for McPhail (he again missed a large proportion of City's matches with illness), he was awarded the club's Clubman of the Year Award at the season's end.
McPhail was restricted to just two cup appearances in 2012–13, with manager Malky Mackay declaring midway through the season that McPhail was available for a short term loan. He was released at the end of the 2012/13 season.
On 19 September 2013, McPhail joined Championship side Sheffield Wednesday on a contract running until January 2014.
On 13 February 2014, Shamrock Rovers announced that they had signed Stephen on a contract for the 2014 season.
McPhail scored on his debut in the 2014 Setanta Sports Cup and made his league debut on the opening day of the 2014 League of Ireland season. On 5 July 2014, McPhail was sent off in a derby day win against St Pat's. In his first season McPhail made 19 league appearances for the hoops.
McPhail played in the 1996 UEFA European Under-16 Football Championship scoring the winner in a group game against Poland in May 1996 and played for the Republic of Ireland national under-19 football team in the 1997 UEFA European Under-18 Football Championship finals in Iceland.
He received his first senior call up in May 2000 when manager Mick McCarthy selected him in the squad for a match against Scotland. McPhail currently holds 10 caps for the Republic of Ireland national football team and has also played for the Ireland under-21 side earlier in his career however he has not earned a full cap for Ireland since a match against Nigeria in 2004. Due to some good form at Cardiff he had publicly declared his hopes of returning to the international scene due to the return of an Ireland B team. In October 2006 he was named in the Republic of Ireland B squad for a match against Scotland B and captained the side in a 0–0 draw. In May 2008, new manager Giovanni Trapattoni selected McPhail for his first squad for the friendly games against Serbia and Colombia. His only goal for Ireland came on 11 June 2000 against South Africa in a 2-1 win in the 2000 U.S. Cup.Leeds United
FA Youth Cup: 1996-97
Football League Division Two play-off winners: 2005–06
F.A. Cup Finalist: 2007–08
Football League Championship Play-off runners-up: 2009–2010
Carling Cup Finalist: 2011–12
Cardiff City Clubman of the Year: 2012
McPhail suffers from Sjögren's syndrome and Raynaud's phenomenon.