Chicago took the lead when Jose Goncalves lost possession on the edge of his own box before Harry Shipp maintained his composure to slot the ball past Shuttleworth.
City took the lead in the first half when Cyle Larin received the ball on the edge of the box and drove forward before rifling an effort towards goal. Evan Bush got a hand to the ball, but failed to keep the strike out of the net.
The Impact responded in controversial circumstances just before the break when Orlando keeper Tally Hall attempted to gather a low cross into the six-yard box, but saw the ball nudged out of his hands by the foot of Dominic Oduro, who fired his strike into the net.
Orlando almost retook the lead in the 51st minute when Brek Shea unleashed a 30-yard effort at goal, but he saw his strike clatter off the crossbar.
However, Seb Hines won the match for the home side when he latched onto a loose ball in the penalty area from a corner and sent his effort into the back of the net.
The Sporting keeper denied the midfielder once again before the break as Valeri blasted the ball at goal from close range, but Melia made a vital block to keep his side level.
Lucas Melano became the next Portland player to see his strike saved by Melia after he latched on to a through-ball, but the keeper stuck out his leg to make the save. Meanwhile, at the other end Adam Kwarasey made an important stop to deny Mikey Lopez.
The game was decided by a moment of brilliance by Sporting forward Krisztian Nemeth as he picked the ball up 30 yards from goal and weaved his way past four defenders and into the box before slotting the ball past Kwarasey to win the match for the visitors.
However, Vancouver took the lead before the break when the Earthquakes fail to clear their lines from a set piece and the ball deflected into the path of Cristian Techera, who waited for the ball to stop before he rifled his strike past Bingham.
Results in full: Chicago Fire 3-1 New England Revolution, Orlando City 2-1 Montreal Impact, Sporting Kansas City 1-0 Portland Timbers, San Jose Earthquakes 1-1 Vancouver Whitecaps