Heikkinen trat erstmals bei den Juniorenweltmeisterschaften 2002 in Schonach international in Erscheinung. Über die Distanz von 10 Kilometer Freistil belegte er als bester finnischer Teilnehmer den achten Platz (im Sprint wurde er lediglich 38.). Dieses Resultat konnte er ein Jahr später bei den Junioren-Weltmeisterschaften 2003 in Sollefteå über 10 km klassisch um einen Platz verbessern, während er im Freistilrennen über 30 Kilometer 42. wurde. Dies ermöglichte ihm seinen ersten Einsatz im Skilanglauf-Weltcup, wo er aber mit Plätzen weit außerhalb der Weltcuppunkte nicht überzeugen konnte. In der Saison 2004/05 gelang es ihm erstmals über 30 km Freistil in Ramsau einen Weltcuppunkt zu erkämpfen. Dennoch wurde Heikkinen weiterhin nur selten im Weltcup eingesetzt. Erst in der Saison 2007/08 gelang ihm der Durchbruch im Weltcup. Im heimischen Lahti überraschte er als Neunter über die Distanz von 15 km klassisch. Beim Weltcupfinale in Bormio gelang es ihm dieses Resultat zu bestätigen. Beim Prolog über 3,3 km Freistil belegte er den 13. Platz und konnte sich im abschließenden Verfolgungswettbewerb über 15 km Freistil mit der schnellsten Zeit aller Teilnehmer den 14. Platz in der Gesamtwertung sichern.
Auch zum Auftakt der Saison 2008/09 stand Heikkinen im Aufgebot der finnischen Weltcupmannschaft und konnte sowohl über 15 km Freistil mit einem 19. Platz überzeugen als auch mit der finnischen Staffel, bei der er als dritter Läufer in Führung liegend an den Schlussläufer übergab. Bei der Tour de Ski 2008/09 errang er den 26. Platz. Seinen bis dahin größten Erfolg konnte er bei den Nordischen Skiweltmeisterschaften 2009 in Liberec verbuchen. Heikkinen gewann über 15 km im klassischen Stil die Bronzemedaille. Eine Woche später sicherte er sich gemeinsam mit Sami Jauhojärvi, Teemu Kattilakoski und Ville Nousiainen die Bronzemedaille in der Staffel. Außerdem belegte er Platz elf über 30 Kilometer im Skiathlon und Platz 37 über 50 Kilometer in der freien Technik. Zum Saisonende kam er beim Weltcupfinale in Falun auf den 19. Platz und erreichte den 30. Platz im Gesamtweltcup und den 19. Rang im Distanzweltcup. Nach Platz drei über 15 km Freistil in Beitostølen zu Beginn der Saison 2009/10 holte er in Davos über 15 km Freistil seinen ersten Weltcupsieg. Die Tour de Ski 2009/10 beendete er auf dem 12. Platz. Dabei kam er dreimal unter die ersten Zehn, darunter Platz drei im Verfolgungsrennen in Oberhof. Beim Saisonhöhepunkt den Olympischen Winterspielen 2010 in Vancouver belegte er den 39. Platz über 15 km Freistil und den fünften Rang mit der Staffel. Zum Saisonende errang er beim Weltcupfinale in Falun den 24. Platz und erreichte den 13. Platz im Gesamtweltcup und den neunten Rang im Distanzweltcup. In der folgenden Saison siegte er bei der Tour de Ski 2010/11, die er vorzeitig beendete, im Verfolgungsrennen in Oberstdorf. Im Februar 2011 feierte er seinen bislang größten Erfolg, als er bei den Nordischen Skiweltmeisterschaften 2011 in Oslo Weltmeister über 15 km im klassischen Stil wurde. Zudem errang er den 18. Platz im Skiathlon und den vierten Platz mit der Staffel. Im März 2011 belegte er beim Weltcupfinale in Falun den 21. Platz und erreichte den 25. Platz im Gesamtweltcup und den 18. Platz im Distanzweltcup. Nach zwei Top-Zehn-Platzierungen zu Beginn der Saison 2011/12, errang er den 24. Platz bei der Tour de Ski 2011/12. Die Saison beendete er auf dem 44. Platz im Gesamtweltcup. Zu Beginn der folgenden Saison belegte er den 18. Platz bei der Nordic Opening in Kuusamo und den zweiten Rang beim La Sgambeda. Im Januar 2013 wurde er finnischer Meister über 15 km Freistil. Seine besten Resultate bei den Nordischen Skiweltmeisterschaften 2013 im Fleimstal waren der 12. Platz über 15 km Freistil und der fünfte Rang mit der Staffel. Über 20 Kilometer wurde er in der klassischen Technik 25. und im Skiathlon belegte er den 17. Rang. Im März 2013 kam er beim Weltcupfinale in Falun auf den 18. Platz und erreichte den 39. Platz im Gesamtweltcup. In der Saison 2013/14 belegte er den 17. Platz bei der Nordic Opening in Kuusamo und den neunten Rang beim Weltcupfinale in Falun. Seine besten Ergebnisse bei den Olympischen Winterspielen 2014 in Sotschi waren der 15. Platz im 50-km-Massenstartrennen und der sechste Rang mit der Staffel. Im März 2014 wurde er finnischer Meister über 10 km Freistil und erreichte zum Saisonende den 28. Platz im Gesamtweltcup und den 19. Rang im Distanzweltcup. Nach Platz sieben bei der Nordic Opening in Lillehammer zu Beginn der Saison 2014/15, holte er zwei Siege beim Scandinavian-Cup in Östersund. Beim folgenden Weltcup in Ryybinsk errang er den dritten Platz im Skiathlon. Bei den finnischen Meisterschaften in Jämi und in Ruka wurde er Meister über 15 km Freistil und über 50 km Freistil. Seine besten Platzierungen bei den Nordischen Skiweltmeisterschaften 2015 in Falun waren der 16. Platz im Skiathlon und der achte Rang mit der Staffel. Über 50 Kilometer wurde er in der klassischen Technik 20. und über 15 Kilometer in der freien Technik erreichte er den 21. Rang. Die Saison beendete er auf dem 20. Platz im Gesamtweltcup und auf dem 14. Rang im Distanzweltcup.
In der folgenden Saison kam Heikkinen bei der Tour de Ski 2016 auf den 18. Platz. Im Januar 2016 wurde er in Imatra wie im Vorjahr finnischer Meister über 15 km Freistil. Die erstmals ausgetragene Ski Tour Canada beendete er auf dem sechsten Platz. Dabei belegte er in Canmore den dritten Platz im Skiathlon und den zweiten Rang bei der Abschlussetappe. Zudem siegte er über 15 km Freistil und belegte zum Saisonende jeweils den 17. Platz im Gesamt und im Distanzweltcup. Mit der finnischen Langlaufstaffel öief er als Vierter nur um einen Platz an Edelmetall vorbei. Im April 2016 gewann er bei den finnischen Meisterschaften in Taivalvaara über 7,5 km klassisch und in der anschließenden Verfolgung jeweils die Goldmedaille.
Nach Platz neun über 15 km klassisch in Ruka beim ersten Weltcup der Saison 2016/17, wurde er Dritter bei der Weltcup-Minitour in Lillehammer. Dabei siegte er bei der Abschlussverfolgungsetappe über 15 km klassisch. Beim folgenden Weltcup in Davos errang er den dritten Platz über 30 km Freistil. Die Tour de Ski 2016/17 beendete er auf dem fünften Platz. Dabei erreichte er im Fleimstal den dritten Platz im 15-km-Massenstartrennen und lief zudem bei der Abschlussetappe die zweitschnellste Zeit. Im Februar 2017 wurde er bei den finnischen Meisterschaften in Keuruu Zweiter über 15 km klassisch. Beim Saisonhöhepunkt den Nordischen Skiweltmeisterschaften 2017 in Lahti gewann er die Bronzemedaille im 50-km-Massenstartrennen. Außerdem kam er auf den 18. Platz im Skiathlon, auf den 11. Rang über 15 km klassisch und auf den fünften Platz mit der Staffel. Zum Saisonende belegte sie beim Weltcup-Finale in Québec den 24. Platz und erreichte den fünften Platz im Gesamtweltcup und den dritten Rang im Distanzweltcup. Seine besten Platzierungen bei den Olympischen Winterspielen 2018 in Pyeongchang waren der zehnte Platz über 15 km Freistil und der vierte Rang mit der Staffel. Im Skiathlon wurde er 21. und im abschließenden 40-Kilometer-Rennen in der klassischen Technik belegte er den 25. Platz. Bei den Nordischen Skiweltmeisterschaften 2019 in Seefeld in Tirol lief er auf den 12. Platz im Skiathlon, auf den 11. Rang im 50-km-Massenstartrennen und auf den vierten Platz mit der Staffel.