Fiji will have the chance to finish the fairytale when they face off against Great Britain in the Gold medal match later this morning (8am AEST).
The Fijians have secured their country's first-ever Olympic medal but will be aiming for the Gold variety after beating Japan 20-5 in the first semi-final.
Great Britain upset South Africa in a much tighter affair, edging out the world number three side 7-5 at a windy Deodoro Stadium.
South Africa led 5-nil at halftime but Great Britain raced out of the break, causing havoc at the breakdown.
Dan Norton rounded South Africa's defence early into the second stanza to dot down underneath the posts and make it 7-5.
TRY: #GBR 7- #RSA 5 #RugbySevens | Live now on 7mate & https://t.co/zZ3mztbRwM #7Olympics https://t.co/l2RlxlyRol
— 7Olympics (@7olympics) August 11, 2016
Neither side could add to the score but not for lack of trying. Both teams desperately defending their line for a shot at Gold.
Great Britain thought they had done enough when they attempted to wind the clock down but a kick from Norton into touch came a second too soon and gave South Africa one last lineout.
They couldn't capitalise though as Great Britain's ferocious work at the breakdown paid dividends to secure a famous win.
In the first semi-final, Japan matched Fiji tit-for-tat in the opening half as Fiji were reduced to six men after Ratemo Ravouvou was shown a yellow card.
Japan couldn't make them pay though, instead Fiji racing away to score through Josua Tuisova and make it 10-5 at halftime.
TRY: #FIJ 20- #JPN 5 #RugbySevens | Live now on 7mate & https://t.co/zZ3mztbRwM #7Olympics https://t.co/hy4vtuKLzh
— 7Olympics (@7olympics) August 11, 2016
Fiji burst into the second half as Semi Kunatani scored after just 53 seconds, before Jerry Tuwai sprinted away to seal a 20-5 win.
Japan still have the chance to win an unlikely medal, when they take on South Africa in the bronze medal match at 7.30am AEST.
Gold medal match
Fiji v Great Britain (8am AEST)
Bronze medal match
Japan v South Africa (7.30am AEST)