Jorge Sampaoli's men, looking to bounce back from a midweek 2-1 loss to rivals Lyon, found themselves two goals behind inside 11 minutes.
But the hosts dragged themselves level and then scored three times in 15 second-half minutes to wrap up an ultimately comfortable victory.
Marseille are now one point clear of third-placed Nice, who host Clermont on Sunday, as the race for a top-three finish and Champions League qualification intensifies.
OM are now eight points ahead of fourth-placed Strasbourg.
Angelo Fulgini gave Angers the lead on eight minutes after robbing Gerson of the ball inside his own area, before he turned provider shortly afterwards for former Tottenham midfielder Nabil Bentaleb to put the visitors in seemingly total control.
But Poland striker Milik pulled one back for Marseille in the 18th minute after excellent work from Matteo Guendouzi.
Brazilian midfielder Gerson made up for his earlier error with a long-range strike to level before the game had even reached the midway point of the first half.
Marseille dominated possession but struggled to create many more clear-cut chances until a flurry of goals secured the three points.
Milik put them in front for the first time with 20 minutes remaining and completed his treble in the 78th minute.
It was the former Napoli forward's second hat-trick against Angers, repeating the feat he achieved in a 3-2 win last May.
He has still only scored five league goals this term.
Substitute Cengiz Under added further gloss to the scoreline with five minutes remaining as Marseille moved within 10 points of runaway league leaders Paris Saint-Germain.
Mauricio Pochettino's PSG take on defending champions Lille on Sunday.