BATTLER: French teenager Kristina Mladenovic.
Both girls were warned by the umpire for code violations in a fascinating final-set decider.
Tempers frayed as the match reached a critical stage but it was Larsson who held herself together, moving through 6-4, 6-7, 6-4.
French Open junior champion Mladenovic, who beat Britain's Heather Watson yesterday, was in tears after missing out in the thrilling encounter.
She saved a match point at 4-5 down in the second set before battling through a tie-break to take it to a third.
And both players showed their determination with ferocious baseline rallies and occasional angry outbursts.
In the fifth game, Larsson's patience was tested when her opponent's volley was called out, only to be overruled by the umpire.
That brought up two break points and Mladenovic took advantage, moving 3-2 ahead.
The break-back was instant as the Swede came from 40-0 down to pull level in a stormy game which saw both players warned.
After missing a simple volley, the French girl whacked a ball in frustration and it flew off in the direction of a line judge.
Larsson was then warned for swearing — and judging by the words she used, the Swede has an excellent grasp of the English language.
She composed herself to pull level at 3-3 then held serve from 15-40 down to take a 4-3 lead.
Again, Mladenovic felt hard done by when a typical winner from her opponent was called out before the line judge corrected himself.
Boosted by the introduction of new balls at 4-4, Larsson served beautifully to go 5-4 in front and she returned brilliantly in the next game to claim her semi-final place.
Larsson was relived to make it through one of the most entertaining games of the tournament so far.
"The match could have gone either direction so I'm really happy to come through," she said.
"We both struggled a bit but we know it's difficult for the line judges and when you're really concentrating it's hard to see their point of view.
"We said some stupid things but you just have to stay as calm as possible and play on."
She will meet compatriot Sofia Arvidsson in tomorrow's semi-final.