Argentina had a good workout against New Zealand, practising their whole range of tactics to take the match 3-0.
"We're getting better by the match but we still have China to play and they're the toughest in our group. But our defence is very strong, as are our minds," said captain Magdalena Aicega.
"There's still a little way to go so we're not going out to party just yet."
Luciana Aymar got Argentina going by being perfectly in place to net the ball as it bounced off the keeper's pads. A cross deflected by Vanina Oneto and a great tactical shot from Soledad Garcia put Argentina top of Pool A.
They now meet China, who have also qualified for the semi-finals but have an inferior goal difference.
In Pool B, the Netherlands were assured of a semi-final spot when Australia and South Korea drew 2-2.
Australia are looking for a third gold in a row but have notched up just four points in three games and only have the Netherlands left to play.
The top two of each pool go through to the semi-finals so it will be a battle between Korea and Australia, who are equal second, and Germany who play South Africa later on Friday.
"Now we're left having to watch other people's results which is not a great place to be," said Australian captain and double gold medallist Katrina Powell.
Friday's match had players regularly running the length of the field as Australia scored and Korea fought twice to level. But despite setting up seven strikes at goal in the last 20 minutes, the "Hockeyroos" failed to make the leap forward.