Willingham's solo clout off Clay Hensley (1-1) enabled the Nats to take the rubber match of their three-game series with the Marlins.
Livan Hernandez pitched seven innings of one-run ball to lower his season's ERA to 0.99.
Tylar Clippard (6-0) got credit for the win after blowing a save in the eighth. Matt Capps instead got the save, his MLB-leading 13th, by hurling a scoreless ninth.
Hanley Ramirez homered and Chris Coughlin went 3-for-4 with a run scored in the Marlins' loss.