Captain Olga Carmona scored an 89th-minute winner to spark wild scenes of jubilation among their supporters at Eden Park, Auckland.
Ednews informs via BBC Sport that Sweden - who have now lost back-to-back World Cup semi-finals - had equalised through Rebecka Blomqvist just 93 seconds earlier and it looked like the match would be going to extra time.
A game of few chances had sparked into life when substitute Salma Paralluelo, 19, gave Spain the lead with just 10 minutes remaining.
They will face England or Australia in the final in Sydney on Sunday.
The semi-final between the Lionesses and the co-hosts is live across the BBC on Wednesday (11:00 BST).