A late goal from Sam Cronin has earned San Jose Earthquakes a 2-2 draw with Eastern Conference leaders Montreal Impact in the MLS.

In the 91st minute, San Jose's Walter Martinez launched a long pass to Chris Wondolowski and the Earthquakes' captain headed the ball down to Cronin, who smashed the ball past Troy Perkins, Montreal's impressive goalkeeper, from the edge of the area.

San Jose had trailed by two goals early in the second half after a double from visiting midfielder Justin Mapp but goals from Adam Jahn and Cronin ensured the home side took a point to stay in the hunt for the playoff positions in the Western Conference.

San Jose started brilliantly at Buck Shaw Stadium and had an early chance to score when Rafael Baca shot straight at Perkins, and soon after the Impact's goalkeeper had to tip Shea Salinas' corner kick away after it threatened to sneak in under his crossbar.

Perkins was again called into action in the 14th minute as Jahn hit the bar before Wondolowski got to the rebound first but the Earthquakes' striker was denied by a brilliant scrambling save from the visiting gloveman.

Montreal hit the front in the 24th minute when Mapp collected the ball in midfield, strode forward and then unleashed a 25-yard strike into the bottom corner of the net.

Perkins produced another fine save before half-time to maintain Montreal's lead and two minutes after the break, Mapp made it 2-0 with a tap-in.

The hosts continued to pepper the Impact's goal with Cronin firing just wide before Jahn gave San Jose a life-line in the 59th minute with a fine finish in the box.

Andrew Wenger could have wrapped up the win for Montreal in the 71st minute but failed to convert a one-on-one opportunity and that came back to bite the Impact when Cronin fired home in stoppage time from the edge of the area.

Despite the draw, Montreal remain top of the Eastern Conference on 17 points, ahead of New York Red Bulls on goal difference, after New York knocked off Columbus Crew 1-0 thanks to a late header from Tim Cahill.

In Philadelphia, Seattle Sounders claimed a 2-2 draw against the Union in a spiteful encounter at PPL Park.

The Sounders led at half-time thanks to Eddie Johnson's goal but a two-minute brace from Daniel Cruz put the hosts in front in the second half before Mauro Rosales struck the decisive equaliser in the 64th minute.

A scuffle in the penalty box with six minutes remaining saw Philadelphia's Sheanon Williams and Lamar Neagle of Seattle sent off, while the visitors also lost DeAndre Yedlin to a red card in stoppage time.