Fans booed through much of the second half after referee Sorin Stoica called Montreal's Patrice Bernier for an accidental hand ball in the area for one penalty and then awarded another after what looked like incidental contact by captain Davy Arnaud.
After Kamara and Zusi converted from the spot to erase a 1-0 deficit, substitute Jacob Peterson put the match away for Kansas City (10-5-2) with a goal from the right side in the 82nd minute as Sporting ended a two-game skid.
Bernier scored in the 49th minute for Montreal (5-11-3), which lost its third straight.
Former Italian international defender Alessandro Nesta, who has agreed to terms on a contract with Montreal, watched from a box with the Impact's management team.
Montreal is waiting for league approval of the deal for the 36-year-old former AC Milan star.
The Impact got into a running spat with Stoica that led to penalties and cautions.
Midfielder Felipe Martins and Arnaud each drew their fifth yellow cards of the season and will be suspended for Sunday's home game against Columbus.
Bernier was called for a hand ball in the area in the 57th minute when a headed ball bounced off his arm. Kamara made no mistake on the penalty kick.
Montreal was called for another foul in the area during a Kansas City corner and Zusi drilled his kick in the left side for the game-winner in the 75th minute.