Twice ahead, the Latics were floored by second-half goals and the defeat leaves them three points adrift of safety with two matches left, and manager Roberto Martinez was ruing the defeat that now leaves his side needing a miracle.
Roger Espinoza gave Wigan the lead just before the interval with a half volley from the edge of the area, before Angel Rangel equalised four minutes into the second half.
Three minutes later, James McCarthy put Wigan ahead for a second time, with Itay Schechter levelling for the Swans after 59 minutes.
Dwight Tiendalli gave Swansea the lead with 15 minutes left after awful defending from Shaun Maloney and James McArthur – it was blow from which Wigan could not recover.
“I thought we had everything under control from the first half, I thought we were performing very well,” he said afterwards.
“We had so many injuries at the back that showed today too much. Sloppy goals were unfortunate, but you could see the effort and desire to win the game. Key moments in the game – they affect the result.
“It was such an important game for us and when we make mistakes it becomes a much bigger mountain to climb, what we need to do we get ready for next two games.”
Wigan remain three points away from Newcastle, Norwich and Sunderland. After Saturday’s FA Cup final, Wigan travel to Arsenal next Tuesday, before ending their campaign against fellow strugglers Aston Villa at the DW Stadium.
“The team is ready to bounce back and take opportunity over the next two games.,” Martinez said.
“We missed an opportunity tonight obviously playing at home. We have got incredible character and are determined to fight for every point.
“There are six points to fight for, we have to learn from this – today we need to accept nothing went our way we turn it quickly.”
Although safe, the win ended an awful run of results for Swansea who had not won since beating Newcastle eight matches ago.
“It was important to end that run of bad results today,” Rangel said. “It was important to get the three points to secure a place in the top 10. We know Wigan are fighting relegation, we showed good character.”
Rangel’s goal could have a big say on if Wigan, a club managed by former boss Martinez, go down. “I wasn’t thinking that it was a vital game – hopefully they will stay up,” he said.
WIGAN: Robles, Boyce (Stam 86), Caldwell, Scharner, Espinoza, McCarthy, Watson (Gomez 86), McArthur, Maloney, McManaman (Di Santo 64), Kone.
SWANSEA: Vorm (Tremmel 85), Tiendalli, Monk, Williams, Davies, Rangel, Britton, de Guzman, Routledge, Shechter (Dyer 69), Hernandez (Agustien 77).
Referee: Kevin Friend (Leicestershire).