The visitors had a 2-0 lead thanks to goals from Evans Quao (40') and ND Opara (67') however the Goan side scored two late goals with Peter Carvalho (86') and Koko Sakibo (89') on the scoresheet.
However the game ended with the two teams embroiled in a scuffle over the controversial goal scored by Sakibo which ended in Clifford Miranda, the Dempo skipper, being sent-off in 90+2 minute. Mumbai FC's James Singh was given his marching orders a few minutes earlier.
Japanese medio Ryuji Sueoka returned for the home side after being injured for more than a month as he teamed up with Joaquim Abranches up front, while Anthony Pereira and Clifford Miranda on the two flanks to provide width.
Khalid Jamil meanwhile started with ND Opara, Yusif Yakubu and Gabriel Fernandes in the attacking third while playing Abhishek Yadav as a centre-back.
The two teams had early chances which were spurned by Joaquim Abranches and ND Opara respectively before the former did manage to find the back of the net from a Valeriano Rebello cross but was rightly ruled offside in the ninth minute.
Godwin Franco's miss-pass could have proved expensive however Opara's pass towards Yakubu was intercepted by an alert Rowilson Rodrigues who stood as the pillar in defense for the home side.
In the 20th minute, Mumbai FC defender Faizal Rehman almost let Abranches sneak past, although goalkeeper Luis Barreto did well by coming off his line to claim the ball.
Two minutes later, one of Rowilson's clearances ricocheted and fell for Opara who shot wide of the far post from the right. This was followed by a save by Dempo keeper Subhasish Roychowdhury as he had to rush off his line to deflect a shot on target by Opara after being played on by Yakubu.
Luis Barreto also sprung to the rescue of his team by putting his body in the line of Anthony Pereira's shot, who was set-up in the area by Climax Lawrence in the 26th minute.
Dempo substitute Peter Carvalho, who came in place of Godwin Franco in the 28th minute, laid off the ball to his right for Valeriano Rebello who took a low drive which saw Luis Barreto fist it to deflect the ball wide in the 37th minute while Sueoka lurking around.
Nicholas Rodrigues' free-kick from the right brushed off the horizontal and came off the far post fell in the path of Evans Quao who made no mistake and opened the scoring for his side in the 40th minute.
The two teams went into the dugout with Khalid Jamil's side being more content having taken the lead.
A 48th minute blunder by Mumbai FC's Gabriel Fernandes, who was released on the right by Subhas Chakraborty, saw the Goan striker play a pass to Yakubu instead of shooting it himself as the Ghanaian was stranded in an off-side position.
Another of Gabriel's shots was blocked in the following minute while Dempo players Anthony and Abranches also had their attempts cut out at the opposite end of the pitch.
For the second goal, ND Opara for a moment looked as if he was strolling on the left side of the park, before placing his shot from about 25 yards out to find the far post to double Mumbai FC's lead in the 67th minute.
It was all a scrambled affair by the Goans after going down by two goals, before Armando Colaco's inclusion of John Menyongar and Koko Sakibo changed things around for the home side.
The goal however came in the 86th minute when Anthony Pereira's cross from the right was headed in by Peter Carvalho who made brilliant run from the middle of the park.
James Singh picked up two cards within seven minutes and Mumbai FC were reduced to ten-men.
A moment of controversy in the 89th minute saw Dempo equalise through Koko Sakibo from a Clifford Miranda throw-in. This was after a Mumbai FC player was on ground and Yakubu sportingly put the ball out of play. However Miranda chose to not give the ball back to Mumbai FC, and instead took a throw-in which the caught the Mumbai FC backline by surprise and Sakibo made the most of the opportunity.
This led to protests by Mumbai FC contingent led by Abhishek Yadav and the two teams got into a scuffle with even bouncers being on the pitch so as to separate the sides. Thereafter referee A. Rowan gave Miranda his second booking of the game which saw the home team being also reduced to ten-men.
The scoreline remained the same until the end with Mumbai FC being distraught for being the sporting of the two sides.
How do you stay up with football when on the move? With http://m.goal.com –your best source for mobile coverage of the beautiful game.