The hosts started well but fell behind when Phil Jagielka beat David de Gea with an acrobatic finish.
United fought back, with midfielders Ander Herrera and Paul Pogba both denied by the woodwork.
Ronald Koeman's side looked destined to hang on for all three points but Ashley Williams conceded a late penalty when he blocked Luke Shaw's shot with his hand.
The Welshman was dismissed and Ibrahimovic stepped up to save Jose Mourinho's side in injury time.
United have won just six top-flight games on home turf this season and face an uphill battle to secure a return to the Champions League next season.
Arsenal host West Ham on Wednesday night and will climb above the Red Devils if they beat their London rivals at Emirates Stadium.