Manchester United’s French striker Anthony Martial (L) wallks with Manchester United’s French midfielder Paul Pogba following the English Premier League football match between Manchester United and Middlesbrough at Old Trafford in Manchester, north west England, on December 31, 2016. Oli SCARFF / AFP
At Old Trafford, United produced a comeback reminiscent of the glory years of the watching Alex Ferguson to continue their recent upturn.
But they had to do it the hard way, with Ibrahimovic initially denied an 18th goal of the season in a contentious incident late in the first half.
Leaping to meet Anthony Martial’s left-wing cross, the Swede jabbed the ball past goalkeeper Victor Valdes at the near post, only for referee Lee Mason to rule it out.
United’s players, and Jose Mourinho, contested the decision, and there was worse to come when Grant Leadbitter drilled Boro in front from Alvaro Negredo’s knock-down in the 67th minute.
But Ibrahimovic did get his goal in the 85th minute, tucking in Martial’s cross, and barely a minute later Pogba headed in the winner from Juan Mata’s cross.
Champions Leicester City claimed a much-needed win, beating West Ham United 1-0 courtesy of Islam Slimani’s 20th-minute header to climb six points clear of the relegation zone.
Swansea City made a demoralising start to life without sacked manager Bob Bradley, slumping to a 3-0 home defeat against Bournemouth that kept them at the foot of the table.
Goals from Benik Afobe, Ryan Fraser and Josh King gave Bournemouth victory, with first-team coach Alan Curtis taking temporary charge of Swansea.
Andre Gray became the first Burnley player to score a Premier League hat-trick as Sean Dyche’s men beat third-bottom Sunderland 3-1 to climb to 11th place.
Gray scored three times in the first 53 minutes at Turf Moor, with Ashley Barnes netting a penalty before Jermain Defoe replied for the visitors.
Matt Phillips and Wales’s Euro 2016 star Hal-Robson Kanu scored as West Bromwich Albion came from behind to win 2-1 at Southampton, who had centre-back Virgil van Dijk sent off late on for two bookable offences.