Bulloch was born on 26 March 1975 in Glasgow. He played for Scotland at U19 and U21 level and has been in four tours in South Africa. In 1996, he was an important player in helping the Scots to fourth place in the 1996 Students' World Cup.
He made his debut for West of Scotland F.C. in November 1995 against a touring side, South African provincial team Griqualand West. He went on to captain West of Scotland from 1996-97. and also took West to promotion to the Premiership Division One.
The game turned professional in 1996 and he played for Glasgow Rugby district team, captaining them in a Challenge Cup match on 16 October 1996 against Sale Sharks of England. He captained Glasgow in 1997. In November he led the team to the quarter final play-off in the 1997–98 European Cup. In May 2002, he signed a further three year contract with Glasgow. In December he made his 100th senior appearance for Glasgow.
In 1997, he was part of the squad for the Scotland XV tour and played in the three victories on the tour. He won his first A cap in 1997 for Scotland's victory over Emerging Wales, and went on to play against all of Scotland’s Five Nations opponents at that level.
In December 1997 Bulloch made his full Scotland debut in an Autumn international against South Africa at the Murrayfield Stadium. Bulloch went on the 1998 tour of Oceania but in the first five minute of Scotland's first test against Australia he left the field with a dislocated shoulder. In 1999 his performances in Scotland's Five Nations success saw him force his way into the World XV. He played in the 1999 Rugby World Cup.
In June 2001 he was called into the British and Irish Lions squad to cover for an injury to Phil Greening on the tour of Australia. He made five appearances, including a replacement appearance in the first Test in Brisbane. His only start came against New South Wales County when the Lions won 46-3.
In November 2002, he was named man of the match for his outstanding performance in Scotland's win over South Africa at Murrayfield. He was included in the Zurich World XV for 2002, a notional team list that was compiled based on ratings from detailed video analysis of performances during the past year. In August 2003 he played against Wales and in gaining his 53rd cap he became Scotland’s most-capped hooker. He was named captain for the following match against the Irish.
He played in the 2003 Rugby World Cup.
In 2005, Bulloch captained Scotland in the Six Nations
He was selected for the 2005 British and Irish Lions tour to New Zealand and was picked as captain for the fifth tour match. He captained three of the Lions mid week games. He made his Test debut in the final Test game of the tour - becoming the only Scot to do so on the tour. Bulloch required stitches after an injury was sustained in a training ground incident involving himself and John Hayes. He retired from international rugby union shortly after his return from Lions duty.
Bulloch signed for Leeds Tykes in May 2005. He had joined on a two-year contract, although the following year Leeds Tykes were relegated from the Guinness Premiership in England and subsequently freed several players including Bulloch.
Bulloch moved back to Scotland and took up employment with Colliers CRE, and returned to play rugby with third-division West of Scotland. In August 2008 he was appointed a non-executive director on the board of Scottish Rugby.
In June 2014 he lost the accolade of Scotland's most capped hooker to Ross Ford.
Bulloch now works for Highland Galvanisers in Elgin, as a technical consultant.