Rafael Bastos scored the only goal of the match in the sixth minute, but struggled to take advantage of their early lead and score more goals. A resolute Goa stood firm to ensure a place in the final and will battle Bengaluru FC for the coveted trophy.
Mumbai got off to a promising start and took the lead in the sixth minute. Arnold Issoko intercepted a sloppy pass from Ahmed Jahouh and dribbled forward through the centre. Issoko picked out Bastos' run into the box from the left and the Brazilian slotted the ball past goalkeeper Naveen Kumar.
Goa soon took control of the game and passed the ball in and around the Mumbai box in search of an equaliser. The Islanders' defence, led by Lucian Goian, stood firm and closed down gaps.
Jahouh was pickpocketed again midway through the first half and Bastos sent Modou Sougou clear into the box. Naveen pulled off a good save and the rebound was cleared by a recovering Mourtada Fall.
A Paulo Machado strike from outside the box was deflected off target by Jahouh and a Bastos free-kick flew over the bar before the break as Mumbai piled the pressure on Goa and sought more goals. At the other end, a Jackichand Singh cross was headed wide by Hugo Boumous, leaving the Mumbai defenders on their toes.
Ferran Corominas who had been silent in the first half tried to influence the flow of the game after the break. The Spanish striker's shot from outside the box three minutes after the restart was saved by Amrinder Singh.
In the 56th minute, Jackichand's cross from the right was punched by Amrinder into the path of Corominas whose shot rattled the crossbar.
Mumbai looked to increase their lead as the second half progressed, but struggled to create clear-cut chances against a stable Goa defence and an alert Naveen.
Machado split the defence with a through-ball into the box for Bastos in the 70th minute but a sliding challenge from Seriton Fernandes and a clearance by Naveen denied the visitors.
Sougou came agonisingly close to scoring a goal late in the game but the striker's effort missed the post by a whisker.
A curling Matias Mirabaje free-kick was kept out by Naveen but a miraculous comeback was already out of sight by then as Goa marched into the final.