A Santiago Freixa hat-trick helped Spain to a 4-2 win over Japan completing an unbeaten run in the round-robin pool games for the Europeans with three wins and two draws.
Japan's Kenichi Katayama scored two goals of his own in the match, but two late goals to Freixa saw the Spaniards finish second in Pool A and progress to the semi-finals.
In Pool B, the two top teams South Korea and Germany played out a timid scoreless draw ensuring both sides moved through to the semi-final stage at the expense of fellow Pool B team the Netherlands.
Bernhard Peters, Germany coach denied that the draw with the Koreans had been a fixed match.
"We tried to win and went out to win," said Peters, whose side will now face Spain in the semis.
"Only in the last 10 minutes did we play a defensive style with five players at the back."
The Koreans will take on Australia in their semi-final, after the Aussies finished off their Pool A matches with a 3-0 victory over Pakistan.
Bevan George scored twice for the Kookaburras, while goalkeeper Stephen Mowlam continued his good form in keeping a clean sheet at the back.
South Korea have had a tight defence of their own conceding just five goals in their five pool matches.
"They will provide stiff competition,” said Kookaburras assistant coach Colin Batch.
"Everyone was probably expecting Holland, but Korea have played really well. They're never too far away, they were semi-finalists four years ago."
"They're fast, they're fit, and they've hardly conceded any goals, so it'll probably be a low-scoring game in the semi-final," added Batch.
The Kookaburras lost their opening match against Spain but then won all four remaining pool matches to top Group A.