2017 wechselte Magnussen nach nur einer Saison bei Renault zu Haas. Er erhielt einen mehrjährigen Vertrag bei dem Rennstall. Am Saisonende belegte er den 14. Gesamtrang mit 19 Punkten. In der Formel-1-Weltmeisterschaft 2018 blieb Magnussen bei Haas. Am Saisonende lag der auf dem neunten Platz der Fahrerwertung mit 56 Punkten. 2019 absolvierte Magnussen seine dritte Saison für Haas. Er schloss das Jahr auf dem 16. Gesamtrang mit 20 Punkten ab. 2020 fuhr er weiterhin für das Team. Im Vorfeld des Großen Preis von Portugal wurde bekannt, dass sowohl er als auch Teamkollege Grosjean Haas zum Saisonende verlassen. Er beendete die Saison auf dem 20. Platz der Fahrerwertung mit einem Punkt.