Goffin war zunächst vor allem auf der Challenger Tour aktiv, seit 2012 spielt er jedoch hauptsächlich auf der ATP World Tour. Seinen ersten Challenger-Titel gewann er am 1. April 2012 in Le Gosier, als er Mischa Zverev mit 6:2, 6:2 bezwingen konnte. Bei den Chennai Open 2012 auf der World Tour errang er mit seinem Sieg gegen seinen Landsmann Xavier Malisse den ersten Erfolg über einen in den Top 50 platzierten Spieler. Für einen Grand Slam konnte er sich erstmals bei den French Open 2012 als Lucky Loser qualifizieren und erreichte dort auf Anhieb nach Siegen über Radek Štěpánek, Arnaud Clément und Łukasz Kubot das Achtelfinale. Gegen Roger Federer unterlag er schließlich trotz 1:0-Satzführung in vier Sätzen. In Wimbledon erhielt er eine Wildcard und stand nach Siegen gegen den an Nummer 20 gesetzten Australier Bernard Tomic und gegen den Qualifikanten Jesse Levine in der dritten Runde. Dort schied er in drei Sätzen gegen Mardy Fish aus. Bei den Olympischen Spielen in London unterlag er in der ersten Runde Juan Mónaco.
In der Saison 2014 gelang ihm ab Juli eine Erfolgsserie, als er nacheinander die Challenger in Scheveningen, Posen und Tampere gewann. Beim darauffolgenden Turnier in Kitzbühel, das zur World Tour gehörte und im August begann, startete er mit einer Wildcard und erreichte ebenfalls das Finale, das er gegen Dominic Thiem in drei Sätzen gewann. Bei seiner nächsten Turnierteilnahme in Winston-Salem überstand er die Qualifikation und schied erst im Viertelfinale gegen Jerzy Janowicz aus. Seine starke Form setzte sich bei den US Open fort, als er erstmals die dritte Runde erreichte. Es folgte das Turnier in Metz, bei dem er seinen zweiten Karrieretitel feierte. Im Endspiel besiegte er João Sousa, den er kurz zuvor bereits bei den US Open glatt bezwungen hatte, mit 6:4 und 6:3. Nach Metz startete er dank einer Wildcard beim Challenger in Mons, das er im Endspiel gegen Steve Darcis gewann. Weitere Siege folgten bei Goffins nächster Turnierteilnahme in Basel. Auf dem Weg in sein drittes ATP-Finale schlug er mit Milos Raonic erstmals einen Top-Ten-Spieler. Im Endspiel blieb er gegen Roger Federer mit 2:6, 2:6 ohne Chance. In der Weltrangliste rückte er trotzdem auf Rang 22 vor. Am Saisonende wurden seine Leistungen von der ATP als Comeback des Jahres ausgezeichnet. Er hatte sich innerhalb des Jahres von Rang 111 auf 22 vorgearbeitet.[1]
In der Saison 2015 gelang Goffin sowohl in ’s-Hertogenbosch als auch in Gstaad der Finaleinzug. Dabei unterlag er in den Niederlanden Nicolas Mahut ebenso in zwei Sätzen wie zwei Monate darauf in Gstaad Dominic Thiem.[2][3] Sein bestes Abschneiden bei den vier Grand-Slam-Turnieren war 2015 der erstmalige Achtelfinaleinzug in Wimbledon. 2016 wiederholte er diesen Erfolg nicht nur in Wimbledon, sondern auch bei den Australian Open. In Roland Garros erreichte er sogar das Viertelfinale, wo er Dominic Thiem in vier Sätzen unterlag.[4] Bei den Olympischen Spielen in Rio de Janeiro schied Goffin im Achtelfinale nach einer Niederlage gegen Thomaz Bellucci aus. Im Oktober gelang ihm schließlich noch sein erster Finaleinzug der Saison auf der World Tour, als er in Tokio ins Endspiel gegen Nick Kyrgios einzog. Beim zweiten Finale seiner Karriere bei einem Turnier der Kategorie World Tour 500 musste Goffin nach Satzführung noch eine Dreisatzniederlage hinnehmen.[5] Zwar verpasste er die direkte Qualifikation für die World Tour Finals, kam als Ersatzspieler für Gaël Monfils während der Gruppenphase aber noch zu einem Einsatz. Gegen Novak Đoković blieb er bei seinem Finals-Debüt mit 1:6 und 2:6 aber chancenlos.[6] Die Saison beendete er in der Weltrangliste auf seinem zwischenzeitlichen Karrierehoch von Rang elf.
Zum Saisonauftakt 2017 gelang ihm bei den Australian Open der Einzug ins Viertelfinale. Dort scheiterte er glatt in drei Sätzen an Grigor Dimitrow. Im Februar erreichte er das ATP-Finale in Sofia, in dem er Dimitrow diesmal in zwei Sätzen erneut unterlag, sowie in Rotterdam, wo ihn Jo-Wilfried Tsonga in drei Sätzen bezwang.[7][8] In der Weltrangliste wurde er nach den beiden Turnieren erstmals als Zehnter und damit in den Top Ten der Welt gelistet. Während den French Open verletzte sich Goffin in seinem Drittrundenmatch gegen Horacio Zeballos, woraufhin er dieses verletzt aufgeben musste.[9] Erst Mitte Juli bestritt er in Umag sein nächstes Turnier und verpasste damit das Grand-Slam-Turnier in Wimbledon. Im weiteren Saisonverlauf schaffte er bei den US Open das erste Mal den Einzug ins Achtelfinale, in dem er von Andrei Rubljow in drei Sätzen geschlagen wurde. Im Oktober gewann er zunächst das Turnier in Shenzhen, als er Oleksandr Dolhopolow im Finale in drei Sätzen schlug, und eine Woche darauf das Turnier in Tokio, sein erster Titelgewinn bei einem World-Tour-500-Turnier.[10] Im Endspiel bezwang er Adrian Mannarino mit 6:3 und 7:5.[11] Für die ATP Finals war er schließlich als siebter Spieler qualifiziert und überstand die Gruppenphase, in der er Dominic Thiem und auch Rafael Nadal schlug. Im Halbfinale bezwang er Roger Federer in drei Sätzen, erlitt im Finale gegen Grigor Dimitrow dann aber eine Dreisatz-Niederlage.[12] Nach dem Turnier erreichte er mit dem siebten Platz in der Weltrangliste seine Karrierehöchstmarke. Für seine Erfolge wurde er 2017 als Belgiens Sportler des Jahres ausgezeichnet. Die Saison 2018 verlief dagegen ohne größere Erfolge für Goffin. Bei den French Open und den US Open stand er jeweils im Achtelfinale, Finals erreichte er auf der World im Saisonverlauf erstmals seit 2013 jedoch keine. Im September beendete er vorzeitig die Saison aufgrund einer Ellbogenverletzung.[13]
2019 begann für Goffin mit einem Erfolg im Doppel: beim Saisonauftaktturnier in Doha gewann er mit Pierre-Hugues Herbert mit einem Finalsieg gegen Matwé Middelkoop und Robin Haase die Doppelkonkurrenz, was Goffins erster Doppeltitel auf der World Tour war.[14] Im Einzel verzeichnete er in der ersten Saisonhälfte Drittrundenteilnahmen bei den Australian Open und den French Open, zudem erreichte er bei den ATP-Turnieren in Marseille und Estoril das Halbfinale. In Halle gelang ihm schließlich der Finaleinzug, er hatte gegen Roger Federer aber in zwei Sätzen das Nachsehen.[15] In Wimbledon zog er kurz darauf zum ersten Mal ins Viertelfinale ein. Gegen Novak Đoković gelangen ihm in drei Sätzen lediglich sechs Spielgewinne, sodass Goffin die Partie deutlich verlor. In Cincinnati erreichte er im August auch erstmals das Endspiel bei einem Masters. Dort bezwang ihn Daniil Medwedew in zwei Sätzen.[16] Bei den direkt darauffolgenden US Open schied er wie in den beiden Vorjahren im Achtelfinale aus. 2020 erreichte er zum Saisonauftakt beim ATP Cup mit Belgien das Viertelfinale, während er bei den Australian Open nach einer Niederlage gegen Andrei Rubljow wie schon 2019 nicht über die dritte Runde hinauskam. Zum Zeitpunkt der Saisonunterbrechung im März aufgrund der COVID-19-Pandemie war Goffin auf Rang zehn der Weltrangliste notiert.
2012 wurde er erstmals in die belgische Davis-Cup-Mannschaft berufen. Beim Relegationsspiel Belgiens 2014 in der Davis-Cup-Weltgruppe hatte David Goffin mit zwei Einzelsiegen maßgeblichen Anteil am 3:2-Erfolg über die Ukraine. Mit der belgischen Mannschaft erreichte er im Jahr darauf das Endspiel, in dem sie mit 1:3 gegen Großbritannien das Nachsehen hatten.[17] Zwar besiegte Goffin im ersten Einzel Kyle Edmund in fünf Sätzen, nach einem Sieg Andy Murrays im zweiten Einzel glichen die Briten jedoch aus und gingen nach einem 3:1-Erfolg im Doppel, in dem Andy und Jamie Murray gegen Steve Darcis und David Goffin gewannen, mit 2:1 in Führung. Goffin unterlag im darauffolgenden Einzel Andy Murray in drei Sätzen.[18] 2017 gelang den Belgiern erneut der Finaleinzug. Goffin hatte dabei sowohl im Viertelfinale gegen Italien und im Halbfinale gegen Australien seine beiden Einzelpartien gewonnen. Auch im Endspiel setzte sich Goffin in beiden Einzeln (gegen Lucas Pouille und Jo-Wilfried Tsonga) durch, dennoch verlor Belgien das Endspiel gegen Frankreich mit 2:3, da die übrigen Partien verloren gingen.[19]