1979 erwarb Carnahan an der University of Missouri in Columbia den Bachelor-Abschluss, 1983 erhielt er den Juris Doctor von der Law School dieser Universität. Um ein politisches Amt bewarb er sich erstmals bei der Wahl zum Repräsentantenhaus von 1990, wobei er dem republikanischen Amtsinhaber Bill Emerson mit einem Stimmenanteil von 42,7 Prozent deutlich unterlag. Von 2002 bis 2004 saß er dann als Abgeordneter im Repräsentantenhaus von Missouri, ehe er 2004 erneut für den Kongress kandidierte und diesmal erfolgreich war: Mit 52,9 Prozent der Stimmen besiegte er den Republikaner William J. Federer und trat somit im Januar 2005 die Nachfolge des nicht mehr kandidierenden Dick Gephardt an.
In der Folge wurde Carnahan 2006 und 2008 jeweils mit großer Mehrheit bestätigt. Auch nach den Wahlen von 2010, die den Demokraten bundesweit große Verluste brachten, behielt er seinen Sitz; allerdings erzielte er mit einem Anteil von 48,9 Prozent nicht einmal die absolute Mehrheit gegenüber dem republikanischen Herausforderer Ed Martin (46,7 Prozent). Bei der parteiinternen Vorwahl zur Kongresswahl 2012 unterlag Carnahan seinem Konkurrenten Eric C. Mayer, der dann dem republikanischen Kandidaten Blaine Luetkemeyer unterlag. Carnahans Kongresslaufbahn endete daraufhin am 3. Januar 2013.