Green and Marchant tries on either side of a Max Malins score in extra time sealed a remarkable win for the London club.
"We worked so hard for this but it's a small achievement compared to what we want to achieve next week." - Man of the match Tyrone Green said after the game.
General manager of rugby Billy Millard says he couldn't bring himself to watch the last few minutes of extra-time and sat in the changing rooms: "We were hanging on for dear life but we just about did enough."
Harlequins will now face either Exeter Chiefs or Sale Sharks in the final of the 2020/21 Premiership season.
Bristol shot out of the blocks in the early knockings of the game as Charles Piutau took a quick lineout to himself. He exchanged passes with Max Malins as the Bears took apart the Quins defense before linking up with Semi Radradra to send Ben Earl away for the first try.
Fullback Max Malins scored twice in 10 minutes before Luke Morahan scored the fourth.
It was then Harlequin's turn to score four unanswered tries. Alex Dombrandt scored the first before the break. Before Green rounded out the second a minute into the second half. Bristol were dealt a cruel blow early in the second half with Charles Piutau leaving the pitch injured an unable to return.
James Chisholm was onto the loose ball for Quins’ third before livewire winger Louis Lynagh, who had a storming game finished the fourth after Dombrandt had burst clean through.
Both teams were denied scores before full time due to forward passes after Callum Sheedy landed a penalty to stretch Bristol’s lead to seven.
Joe Marchant scored off a set move with Green putting him through with Marcus Smith tieing the game at 31 points apeice to send the game into extra time.
Quins maintained the momentum and Green made the most of it scoring 4 minutes after the regulation 10 minutes into the first half of extra time. He turned Semi Radradra inside out before reaching over for the five-pointer.
The conversion gave Quins a 7 points buffer and the advantage of two tries more than Bristol meaning the Bears needed to score twice.
The Bears got one of them in the 14th minute of extra-time, Malins claiming a hat-trick after yet more sweeping play and he narrowly missed his drop goal conversion attempt. Making it a two-point game in the latter stages.
Smith put Marchant over for another as Bristol finished the game with 14 men after an injury to Semi Radradra with Bristol having no replacements left.
There was late drama as Luke Northmore’s tackle on Siale Piutau which resulted in the turnover was judged to be millimeters from his head. The officiating team reviewed the tackle but felt there was nothing it in.