McHale had been stopped in her two previous WTA semifinals - both at Québec City, in 2010 and 2013 - and for a while it looked like history would repeat itself this time too, as Garcia won the first set routinely and, after dropping the second set, went up 2-0 in the third set with points for 3-0.
But McHale kept grinding, winning seven of the next 10 games to close it out.
"It feels amazing - it still hasn't really sunken in yet," McHale said afterwards. "Caroline was playing really solid in the first set and I was getting pushed too far behind the baseline, so I really tried to dictate a little bit more. I started getting into the games more and serving a lot better, as well.
"I kind of had a good feeling this tournament."
The very end of the match wasn't so smooth, though - McHale won it on her sixth match point.
"Definitely on the match points it was on my mind that I was almost in my first WTA final," McHale commented. "Also, Caroline was playing some really amazing shots on all of those match points.
"I was so happy when the challenge system showed the last shot was out."
"I had a very good start, 2-0 up. My arm was fine, and my forehand and serve were feeling really good," Zhang said. "But in the start of the third game I couldn't hit those shots properly anymore. I was nervous to hit the ball because it was very painful. So I couldn't continue, and I'm very sad."
"She was playing really well at the beginning - so aggressive, so free. I thought it was going to be a really, really tough match," Cibulkova said. "All of a sudden she retired - I hope she gets better.
"But I've had tough matches every day, so it's nice to have a quicker day today. And I still had to prepare for the match and play half an hour, and I was happy with how I played, so it's fine."