After Juan Carlos Belencoso put Atletico de Kolkata in the lead in the 28th minute, FC Goa fought back strongly in the second session to restore parity in the 80th minute through Mandar Rao Dessai before Stephen Pearson scored the winner for the visitors in the injury stoppage time.
ATK thus not only kept their unbeaten record of eight matches meeting but also moved to second place with 18 points from 12 outings, behind Mumbai City who are leading the table with 22 points from 13 matches.
ATK quickly settled down as they built moves from the middle and Javier Lara Grande twice stretched Gos keeper Laximikanth Kattimani to make diving saves in the first quarter of the match.
The home team defence finally succumbed to the pressure from the visitors and conceded a goal in the 28th minute.
More From This Section
Abinash Ruidas, who worked his way on the left, sent a high cross into the box for tall Juan Carlos Rodriguez Belencoso who rose above his marker to head home the ball into the net.
The home team, who needed to win all their three final matches, found the going tough against a well organised rival defence.
Goa came back strongly in the second half with Joffre leading the attack along with Romeo Fernades who was the livewire on the right flank as they kept the pressure on the rival defence.
Unable to get the equaliser, Goa coach Zico made three quick changes, bringing in Robin Singh, Raju Gaikwad and Julio Caesar in place of Keenan Almedia, Debabrata Roy and Trindade Goncalves.
The home team found the equaliser in the 80th minute when a move from the middle saw Raphael Coelho lay a pass to Mandar Rao Dessai on top of the box and the winger sent an angular low shot that found the far corner of the net.
Goa went all out in the last 10 minutes in search of the winner with their defence moving forward to assist their forwards and they paid the price as the visitor came with a counter move and scored the winner in the 90th minute.