The No.1-seeded Williams looked like she was in complete cruise control as she stormed out to a 61 40 lead, but the No.6-seeded Wozniacki didn't throw in the towel at all - she reeled off three games in a row to close the gap to 61 43, even getting to within a few points of evening the second set at 4-all.
But Williams cracked down when it mattered most, holding on and finally closing the Dane out, 61 64.
"I felt I played really well tonight, especially in the first set," Williams said afterwards. "I played well in the second set too, but I think Caroline just played so much better and she lifted her game so much.
"But I think overall it was the best performance I've had this week, which I'm excited about."
It was Williams' 71st match win of the season - before this year her personal best was 58 match wins.
"It feels great," Williams said of the number. "It was definitely something I didn't expect in the beginning of the year. Never even thought about it. So it's like a big bonus for me. It feels really good."
When Williams was in her press conference her semifinal opponent wasn't known yet - either No.3 seed Radwanska or No.7 seed Angelique Kerber. The World No.1 was asked to assess both of them.
"They play a similar game, except one is a righty and one is a lefty," Williams said. "They both get a lot of balls back and they're both great players. It doesn't matter who I play, it will be tough. I'm going to have to come out and be as focused as I was tonight and do my best to try to hang in there."
Radwanska ended up beating Kerber in straight sets, though it was about as complicated a straight set match as possible, particularly the first set. Radwanska originally led 5-1 and had a total of six set points throughout the set but eventually found herself in a tie-break, where Kerber stormed out to a 6-2, quadruple set point lead - Radwanska clawed back but Kerber got a fifth one at 7-6. But back-to-back double faults gave Radwanska a seventh set point and she finally converted to sneak out the set.
There were a few more momentum shifts in the second set - Radwanska went up 3-1, Kerber caught up to 3-all, Radwanska faced a pair of break points while serving for the match - but at the end of the day Radwanska just kept coming through when it mattered most, closing Kerber out, 76(7) 64.
"Well I'm very, very happy to win that match," Radwanska said after the match. "Playing someone for the second time in two weeks is tough, but I'm very happy with how it went. The match was very tight.
"I'm very happy to reach the semifinals here again and I feel like I have nothing to lose."
Williams has beaten Radwanska in all six of their previous meetings, though a few of them have been close, like last year's Wimbledon final (where Williams originally led 61 42 but ended up having to win it in three sets) and the semifinals of Toronto this year (straight sets, but close to two hours).
"I'm just going to go on court and try to play my best tennis, and hopefully be in the final again," Radwanska said. "I'm facing the No.1 in the world who is playing unbelievable tennis for the last couple of months. I'm just going to go on court and enjoy myself, and hopefully I can stay in the game."