The former Rangers defender headed home from close range to give Hearts a deserved draw and leave Rangers two points clear of their rivals.
On Saturday Paul Gascoigne had scored the first goal for Rangers, who surrendered a two-goal lead to Aberdeen, the second to a last-minute strike by Billy Dodds. Given a chink of light, Celtic displayed little urgency for the task and were pulled back in similar circumstances.
If Gascoigne turned from hero to villain in the eyes of the Rangers supporters, Pierre van Hooijdonk, who a couple of weeks ago seemed to be heading out of Celtic Park after a public row with his manager Tommy Burns, milked the applause when he scored both Celtic goals, the second which was his 50th for the club.
His first in the 37th minute finished a well-constructed move with Simon Donnelly stepping over a cross from Paolo Di Canio to allow the Dutch striker the chance to shoot low into the corner of the net.
Celtic appeared to have the upper hand and to be on the way to victory with a second goal six minutes after the interval. Van Hooijdonk shot home after Morten Wieghorst knocked down a Tom Boyd cross.
At that stage it appeared Celtic had done enough but Hearts came back with a spirited performance, scoring within seconds to reduce the deficit. Colin Cameron found space in the penalty area to drive an angled shot home off the far post.
McPherson supplied the coup de grace with seconds remaining, rising high to head home a Pasquale Bruno cross.
The comeback by his side will have been pleasing for Jim Jefferies, the Hearts manager, who will now prepare his side for Wednesday's Coca-Cola Cup semi-final against Dundee, while Burns will once again regret a lost chance to move ahead of Rangers.
He was without several top players, including Jorge Cadete, their Portuguese striker who has been missing for several weeks through injury.
However, Celtic are giving a trial to one of Cadete's compatriots, Amaral, a Portuguese international midfielder who is out of contract with Benfica.
The reserve goalkeeper, Stewart Kerr, who replaced the suspended Gordon Marshall, survived several anxious moments before steadying himself and pulling off several important saves throughout the 90 minutes.
However, with a quarter of the League campaign now completed, Rangers are still top of the table - with Celtic appearing to be their only genuine contenders to stop them winning another title.
Goals: Van Hooijdonk (37) 0-1; Van Hooijdonk (51) 0-2; Cameron (52) 1-2; McPherson (89) 2-2.
Heart of Midlothian: (4-4-2): Rousset; Weir, McPherson, McManus, Pointon; Cameron, Salvatori (Bruno, 64), MacKay (Beckford, 73), Callaghan; Robertson, Paille. Substitute not used: Ritchie.
Celtic: (3-4-3): Kerr; O'Neil, Stubbs, Boyd; McNamara, Wieghorst (McLaughlin, 80), Grant, Gray; Donnelly (Thom, 75), Di Canio, Van Hooijdonk.
Referee: McCluskey (Stewarton).
Man of the match: Van Hooijdonk.
Attendance: 13,352.Reuse content