Sein erster Profiverein war der SK České Budějovice. Im Frühjahr 2002 wechselte er leihweise zu FC Vysočina Jihlava absolvierte jedoch nur fünf Spiele und kehrte im Laufe der Rückrunde zurück nach Budějovice und trug mit seinen Toren wesentlich zum Aufstieg des SK České Budějovice bei. Im Jänner 2005 lehnte er ein neues Vertragsangebot von SK České Budějovice ab und wurde deshalb vorübergehend in die 2. Mannschaft abgeschoben. Lafata wechselte dann nach zu Skoda Xanthi. Sein Gastspiel in Griechenland dauerte nur ein halbes Jahr und war wenig erfolgreich. Nach seiner Rückkehr nach Tschechien fand er jedoch wieder zur alten Stärke. Beim FK Jablonec 97 wurde er dann zum Teamspieler und Trainer Karel Brückner holte ihn in die Nationalmannschaft. Bei seinem Debüt wurde er in der 75. Spielminute eingewechselt und erzielte als Joker 2 Tore zum 2:1 Sieg der Tschechen gegen Wales.
Der tschechische Teamstürmer David Lafata wurde am 31. Jänner 2007, knapp vor Transferschluss zur Austria geholt. Er unterschrieb einen Vertrag bis Sommer 2009. Lafata schaffte bei der Austria nicht den Durchbruch, unter dem neuen Trainer Karl Daxbacher wurde er im ersten Meisterschaftsspiel der Saison 2008/09 nur eingewechselt. Im zweiten Spiel war er nur mehr auf der Ersatzbank ohne Einsatz und danach nicht mal mehr im Kader. Nach der Verpflichtung von Stürmer Mamadou Diabang sah er keine Perspektiven mehr bei der Austria. Am 30. Juli 2008 gab die Austria bekannt, dass Lafata zurück zum FK Jablonec wechselt. Über die Ablösesumme wurde Stillschweigen vereinbart.
Erfolge:
EM-Endrundenteilnehmer 2012, 2016
Österreichischer Cupsieger (Austria Wien 2006/07)
2 x Torschützenkönig in Tschechien (FK Jablonec 2010/11, 2011/12)
Vereine:
JZD Olešník (Jugend), SK České Budějovice (1992-2001), FC Vysočina Jihlava (Frühjahr 2002), SK České Budějovice (2002 - 2005), Skoda Xanthi (Herbst 2005), FK Jablonec 97 (Jän. 2006 - Jän. 2007), Austria Wien (Jänner 2007 - Juli 2008), FK Jablonec 97 (Sommer 2008 - Herbst 2012), Sparta Prag (ab Jänner 2013, Vertrag bis 2016)
Legende:
E ... Einsätze
EW ... Einwechslungen
T+ ... Geschossene Tore
T- ... Tore erhalten (nur für Tormänner)
S ... Siege
U ... Unentschieden
N ... Niederlagen
G ... Gelbe Karten
GR ... Gelb-rote Karten
R ... Rote Karten
M ... Spielminuten
M/T+ ... Minuten pro geschossenes Tor
M/T- ... Minuten pro erhaltenes Tor (nur für Tormänner)