Indian Super League 2016 Full Schedule
Rafael Luiz netted the all-important goal from a free-kick in the 32nd minute at the Balewadi stadium here.
The win meant Goa went up to the seventh place, on seven points from eight games, pushing Pune to the bottom of the eight team tournament with six points from seven games.
Pune are now winless in five straight matches while it was Goa's only second victory of the competition.
FC Goa chief coach Zico made as many as five changes to the team that lost the last match at home against Delhi Dynamos.
Zico preferred to strengthen his defence with three international players while goalkeeper Laxmikant Kattimani, Sanjay Balmuchu and Robin Singh also returned to the side.
FC Pune City coach Antonio Habas, who had never lost a match against Goa, made three changes, at least one necessitated with the two-match suspension of defender D Ravanan.
Pune dominated the early phase of the match. Midfielder Sanju Pradhan beat Goa's Mandar Rao Dessai to essay a pass for striker Dramana Traore with five minutes gone, but defender Gregory Arnolin cleared it out.
Pune enjoyed more posession, with marquee man Mohammed Sissoko in the thick of things.
but they couldn't convert that domination into goals.
Goa also had sighters on goal with Jofre Mateu, having been fed by Goa striker Robin Singh, blazed his shot high and wide.
Goa eventually took the lead in the 32nd minute. Joffre won a free-kick just outside the box after being brought down by Pune defender Augustine Fernandes.
Rafael stepped up and curled the ball well into the far corner of the nets, past Pune goalkeeper Edel Bete who was distracted by the presence of Robin Singh in the defensive wall.
Pune came close to securing the equaliser just before the half-time break as Jonatan Lucca cut past five Goa players but his shot was well saved by goalkeeper Laxmikant Kattimani.
In the second session, Pune could not breach the solid defensive line manned by captain Gregory Arnolin, Rafael Dumas and Luciano.