World hockey champions Australia, on eight points, need at least a draw on Tuesday against Pakistan, who have seven, to clinch a semi-final spot.
If Australia unexpectedly lose, Britain, who also have eight points, would need a draw versus injury-hit Spain later that day to reach the last four.
In Group B, Netherlands beat reigning champions Germany 3-1 in another action-packed game to clinch a seventh consecutive top-four Olympic finish, leaving the Germans and South Korea to fight for the second semi-final spot from the section.
Britain were stunned when Australia struck twice in the early stages, although both teams had a slew of chances.
The Australians had silenced the home crowd as early as the seventh minute when Russell Ford finished a run down the baseline by pushing the ball through keeper James Fair's legs.
Just four minutes later Ford scored again, slipping a reverse finish into the net to secure a 2-0 halftime lead.
Australia came out strongly again after the break, with captain Mark Knowles smashing the ball past Fair from the top of the circle six minutes into the second half.
However, Britain raised the tempo and scored after a dribble down the backline by Jonty Clarke, whose shot was deflected into the net by a defender's stick.
Home skipper Barry Middleton then tipped a penalty corner pass from Richard Smith over the line in the 53rd minute.
With just five minutes to go, and the 16,000 crowd in Riverside Arena on their feet, James Tindall slotted a baseline pass into the goal to earn a share of the spoils.
"It was just crazy, so open. It was just a brilliant game of hockey. Even at 3-3 neither side went for a draw," said Middleton.
Germany took the lead against the Netherlands after three minutes through Christopher Zeller's low penalty corner flick but could not hold on to their advantage.
Dutchman Bob de Voogd scooped up a rebound and fired home the second-chance shot to level in the 14th minute.
Netherlands went in front when Teun de Nooijer marked his 450th cap with his 218th goal just after the break and the momentum swung towards the Dutch.
Although the Germans fought gamely, Mink van der Weerden wrapped up a deserved victory for the Netherlands with a top-shelf penalty corner goal in the 41st minute.
The Dutch lead Group B with 12 points ahead of Germany on nine and South Korea on six. Germany need a point in their last group match to guarantee a semi-final place while South Korea must beat the Netherlands and hope the Germans lose.
The Koreans thrashed India 4-1 on Sunday leaving the record eight-time Olympic champions bottom after four straight defeats.