Missed the match? Catch up via beIN SPORTS CONNECT
Wayne Routledge had cancelled out Leonardo Da Silva Lopes's opener as the two teams were level at half-time.
However, the game exploded into life early after the interval, goals from Marcus Maddison and Mallik Wilks for the hosts sandwiching an effort from Kyle Naughton.
Play-off hopeful Swansea made it 3-3 thanks to Jordan Garrick and appeared on course for all three points when another of its substitutes, Rhian Brewster, scored to put the visitors in front.
The on-loan Liverpool forward's third goal for the Swans seemed set to seal the deal, only for Eaves to tap in Josh Magennis's cross in the fifth additional minute.