He has played the character Warden Ackerman in Red Dwarf in five episodes of series 8. McTavish has also had many supporting roles in British dramas and films such as Casualty, Jekyll, The Bill, Taggart and Sisterhood.
McTavish and Ken Stott both appeared in the 2004 historical action film King Arthur.
McTavish provided the voice and motion capture work for the evil psychopath war criminal Zoran Lazarevic in Uncharted 2: Among Thieves, the voice of the main protagonist Dante Alighieri in Dante's Inferno, Restoration leader Commander Lucius in the Shadow Complex video game, and the Decepticon Thundercracker in Transformers: War for Cybertron. He played Russian Foreign Minister Mikhail Novakovich in the eighth season of 24, and did voice work as the Marvel Comics villain Loki in Hulk Vs. Thor and The Avengers: Earth's Mightiest Heroes. In 2011, McTavish also provided the voices of antagonist Joseph Bertrand III in Infamous 2 and newcomer Charlie Cutter in Uncharted 3: Drake's Deception.