Swansea City 2 Brighton & Hove Albion 1
And the win over Brighton, their fourth on the trot, moved the Welshmen into equal sixth spot with rivals Oldham Athletic as Roberto Martinez's team kept their play-off dream alive.
Brighton had taken a surprise lead after a sloppy start from the hosts, Alex Revell heading home his 11th of the season.
But then on-loan Hull City star Duffy inspired the comeback when he headed home the leveller on 21 minutes, and grabbed the winner four minutes before the break.
Swansea were made to pay for their sloppy start on 14 minutes as Revell marked his return to the side with the opener, nodding home unmarked from Sam Rents' free-kick.
But the goal spurred the Swans and they almost hit back immediately in controversial fashion, the hosts restarting as Brighton still celebrated only for Kerry Mayo to clear Lee Trundle's effort off the line.
But the Welshmen did level on 21 minutes when Guy Butters' poor clearance was put back in my captain Alan Tate and Duffy expertly headed past Scott Flinders.
Izzy Iriekpen had to be alert to keep substitute Jake Robinson's effort from going in when he got on the end of a Revell ball on 24 minutes, but the defender was involved in the action at the other end moments later when he and Leon Britton both went close.
It was one-way traffic with Swansea camping out in the Brighton box, but the second goal eventually came from well outside the area, Duffy controlling the ball, swivelling and shooting past Flinders.
But Brighton rallied after the break and Willy Gueret had to be alert to keep out Robinson as he raced clear, pouncing at the striker's feet to keep the hosts in front.
He then followed that up with an 89th-minute denial of substitute Nathan Elder as Brighton pressed, only for the Swans to keep moving towards their top-six target as the final whistle blew.