© Getty Images
Bouchard, who is competing in the main women's draw in Melbourne for the first time this year, came from a set down to win 5-7 7-5 6-2 on Rod Laver Arena.
The first six games of the match went with serve before the next three were won by the receiver, handing Ivanovic the opportunity to serve for the opening set.
She failed to convert two set points as Bouchard broke back straight away. Nevertheless, the 14th seed stayed calm and managed to seal the set in game 12 with a break to 15.
Bouchard stormed into a 4-1 lead in the second set, but Ivanovic won the next two games to get it back on serve before taking a medical timeout, seemingly for a minor leg complaint.
Ivanovic was broken to love after returning from the trainer's table and, although she managed to level the set at 5-5, her second double fault of the match, which came at set point down, allowed Bouchard to force a decider.
Momentum continued with the 19-year-old in the final set, which she won in 40 minutes without facing a single break point.
A total of 217 points were played during the 144-minute match, with Bouchard winning 113 of them.
She produced 47 winners and 37 unforced errors, while Ivanovic made 34 winners and 35 unforced errors.
Bouchard will face Chinese number one Li Na in the last four on Thursday.