Begonnen hat seine Karriere im Kartsport. Später kam er über die Formel Ford und die Formel 3 in die Formel 3000. In der Formel 1 war er lange Zeit Testfahrer in verschiedenen Formel-1-Rennställen, bevor er 2002 für eine Saison für Toyota fahren durfte.
2005 war er für Audi in der DTM tätig.
2006 gewann er das 12-Stunden-Rennen von Sebring zum zweiten Mal und belegte in Le Mans einen dritten Platz.
2008 gelang ihm ein weiterer großer Erfolg, er gewann mit Tom Kristensen und Rinaldo Capello auf einem Audi R10 TDI zum zweiten Mal in seiner Karriere das 24-Stunden-Rennen von Le Mans.
2009 konnte McNish seinen dritten Sieg beim 12-Stunden-Rennen von Sebring einfahren. Zusammen mit Tom Kristensen und Rinaldo Capello setzte er sich mit dem neuen Audi R15 TDI bei dessem ersten Renneinsatz gegen Franck Montagny, Stéphane Sarrazin und Sébastien Bourdais im Peugeot 908 HDi FAP durch.