Mackay's men have now won just one in their last five in the Championship and from a previous position of strength are now left peering anxiously over their shoulders at the chasing pack.
Aron Gunnarsson swept the Welshman in front after 23 minutes but Posh substitute McCann equalised from the spot on 72 minutes after Mark Little was fouled by Don Cowie in the box.
McCann netted his second penalty seven minutes later after a foul by Matthew Connolly on Dwight Gayle which proved enough to send Posh out of the relegation zone on the back of six games without defeat - and complete the double over the leaders after their 1-0 win in south Wales earlier in the season.
George Boyd capped a memorable week with a spectacular winner as Hull closed to within four points of Cardiff after beating Huddersfield 1-0.
Boyd, on loan from Peterborough with a view to a permanent summer deal, rifled home his fourth goal in six games for the Tigers within 60 seconds of the second half, four days after making his Scotland debut against Serbia.
The 27-year-old's emphatic finish was a rare moment of class in a game bereft of clear-cut chances, but the win lift Steve Bruce's side four points clear of third-placed Watford.
Huddersfield, left looking over their shoulders at the other end of the table, were chasing back-to-back wins for the first time since October, but have slipped to within two points of the relegation zone and face a nervous run-in.
The winner came when Jay Simpson threaded a fine diagonal pass into Boyd's path and although under pressure from covering Huddersfield defender Peter Clarke, the Scotland international lashed a rising shot into Alex Smithies' top right-hand corner from the edge of the penalty area without breaking stride.
Struggling Wolves also boosted their survival prospects with a dramatic 3-2 win over free-falling Middlesbrough at Molineux. Starting the day second from bottom, Wolves were helped on their way by a 17th minute Stephen McManus own goal before Grant Leadbitter dragged Boro level eight minutes later.
Bjorn Sigurdarson gave Wolves back a lead which Leadbitter cancelled out again, before Kevin Doyle struck to claim three priceless points for his side when he headed home a Roger Johnson cross on 70 minutes.
Sheffield Wednesday hung on for a 2-1 win over Barnsley in the South Yorkshire derby at Hillsborough despite finishing the match with 10 men, while a late howler from Brighton goalkeeper Casper Ankergren rescued Nottingham Forest a point in a dramatic 2-2 draw between the two play-off contenders at the City Ground.
Bolton's faint hopes of forcing their way into the play-offs suffered another blow as they had two men sent off in a 3-2 defeat at Charlton. Marvin Sordell and Medo Kamara had put Bolton 2-0 up before Johnnie Jackson pulled one back for Charlton, and the game changed when Craig Dawson was sent off for a second yellow card on 58 minutes.
Dorian Dervite equalised in a scramble from the resulting free-kick and Yann Kermorgant put Charlton in front from the penalty spot three minutes later. Craig Davies was the second Bolton player dismissed in injury time.
Neil Warnock's Leeds never recovered from the 31st minute dismissal of Tom Lees for a professional foul, as two goals from David McGoldrick and one for Jay Emmanuel-Thomas gave Ipswich a 3-0 win at Portman Road.
- Sports & Recreation