Spain were awarded two penalty corners in the last two minutes but the umpires, encircled by British players, changed their decisions to give the hosts a free hit instead.
At the end, Spain coach Dani Martin stormed onto the pitch to confront the officials and keep his players from doing so.
He threatened "serious consequences" if the organisers did not explain the disputed decisions and implied favouritism towards the hosts, who were cheered on by a 16,000-strong crowd.
Earlier on Tuesday, world champions Australia booked a semi-final place after sending Pakistan packing with a crushing 7-0 victory that erased doubts about their billing as tournament favourites following two pool-stage draws.
World number one side Australia will play reigning Olympic champions Germany on Thursday in a battle between the world's top ranked teams, while Britain face the Netherlands, the only side yet to drop a point, in the other semi-final.
Britain needed a draw to progress while Spain, who lost two key players to injury at the start of the tournament, had to win and were perplexed over why the umpires changed their decisions.
"The (International Hockey Federation) needs to take this very seriously because it is a very serious situation," Martin said after congratulating Britain.
"It cannot happen that an international official changes his decision twice just because he is surrounded by British players."
The FIH reprimanded British skipper Barry Middleton for failing to control his team and its technical director would speak with Spain on Wednesday, tournament officials said.
The crowds at Riverbank Arena have cheered the home team on so much that the men's hockey team manager Andy Halliday has dubbed them "Rodney Riverside", Britain's 12th player.
Britain took the lead with their second penalty corner just minutes before halftime with a low flick by Ashley Jackson, his fourth goal in the tournament.
With 16 minutes left in a nervy second half, Spain scored an almost identical equaliser with a penalty corner goal by Pau Quemada and then pushed hard for a winner by launching forceful attacks in a bid to reach the semis.
In the last five minutes Spain were awarded five penalty corners but failed to score from three while the other two were overturned after the British players surrounded the umpires.
Martin said the British players were within their rights to complain but that his side had been penalised in previous matches for similar behaviour.
"We are in a tournament where there are clear favourites and these countries are being favoured," he complained.
Britain's coach Jason Lee acknowledged that the umpires had been under pressure but thought they made the correct decisions.
"They decided the decisions on their own and I thought it showed good clarity of thought under pressure," he told Reuters.
"It's a well researched fact that officials in any sport go with the pressure quite often and there certainly was a lot of pressure out there."
While Spain's men cried, Britain's Middleton was elated to have led his side to their first Olympic semi-final since 1988 when they won gold at the Seoul Games.
"In Athens (in 2004), if you had told us we would be in the semi-finals, we probably would have chuckled a little bit. We used to think it was just for the Aussies and the Dutch and the Germans to do it every time."
Australia only needed a draw against Pakistan to reach the last four but the world's top-ranked team secured their third victory by five goals or more To nil after taking a 2-0 lead within six minutes and were always in control.
Two goals by Christopher Ciriello and one apiece from Liam De Young and Mark Knowles gave Australia a 4-0 halftime lead before a spectacular Russell Ford goal, a slide by Glenn Turner and a Jamie Dwyer strike sealed a resounding victory.
Australia coach Ric Charlesworth said: "We now have to play Germany, so we have a task ahead of us.
"They're a high quality team, they're physically strong, they're skilled and they have some match-winning players.
"It's going to be very tough. But when you get to this level of competition, whoever you play is very good."
Germany drew 5-5 against New Zealand in the late game in which their skipper Max Mueller was hit by a Kiwi stick and went off in the first half.
Team officials said he had a suspected fracture of his right middle finger and they would probably decide on Wednesday whether he could continue playing.