Younger goalkeeper Oscar Mason kept the visitors ahead in the latter stages of the first half with an impressive penalty save to deny former Hawke's Bay United and Wellington Phoenix forward Hamish Watson an equaliser from the spot.
Rovers were forced into another change early in the second half as an injured Zac Madsen was replaced by 17-year-old Lucas Barclay.
Despite the enforced substitutions, it seemed the visitors were assured second spot in the league after round five of the competition after Wellington Olympic were reduced to 10 men with 10 minutes to go.
But Hamish Watson spoiled the party, firing home from eight yards out with five minutes to go – despite calls for offside from the Rovers bench.
Watson had the last laugh in the dying seconds of the match, scoring his second of the game to snatch all three points for Olympic, courtesy of a wicked deflection off defender Jim Hoyle.
Olympic goalkeeper Scott Basalaj made a world-class save to prevent an equaliser with the final kick of the game and Rovers' remain third in the table despite leading the fixture for over 80 minutes.
The Blues are due to travel back to the capital next Saturday to face Lower Hutt City at 3pm at Fraser Park.