The American hit back to take the next two sets, recovering from 0-40 down to serve out the match and make her first appearance in the final for eight years.
Garcia, who won her last two tournaments to reach the Finals, was two points from elimination in the 10th game of the third set but she dug deep to hand Wozniacki her first defeat of the competition.
Caroline Wozniacki's frittered away five set points in the opening tiebreak but managed to edge out Karolina Pliskova in their semifinal encounter.
The elder of the sport's most famous sisters yesterday gave the world another reminder of just how capable she remains of rewriting history - and she could yet do so again today, when she plays "good friend" Caroline Wozniacki in the final of the BNP Paribas WTA Finals Singapore presented by SC Global. "With this experience of the WTA Finals, I feel like I have so much more things to keep working on". The first set was very tight and Williams stayed in touch after saving 6 out of 7 break points, only to fall short in the tie break.
"I can say I had two hard moments this year; one at the beginning of the year when I was injured about three months, I couldn't play, and then I came back stronger", she said.
Austin authorities say 3 shot by gunman dressed as Santa
Police noted that it's believed the suspect was known to the victims in this case - and this wasn't a random act. A third victim was described as a female in her 30s with serious, but non life-threatening injuries.
"I just felt 100 percent that the court is not for me and I can not finish a point", the Romanian said.
Garcia had claimed the final spot in the season finale after winning successive WTA titles at the Wuhan and China Open, but her impressive form was ended by 2008 champion Williams.
Garcia capitalised and won four straight games en route to levelling the match before outlasting Wozniacki in a tense third set.
"One more match and I'm going to be playing against one of the best players in the tournament, another Caroline, and it's going to be like deja vu", Williams told the crowd.
She then won the next two games to win 0-6, 6-3, 7-5 in two hours and 19 minutes at the Singapore Indoor Stadium. "I haven't played her in a long time. But if I can win in two sets, I'm sure I would be just as happy about it, and my team would be even more".
India versus New Zealand 3rd ODI: India 337/6 in 50 overs
Kohli, in 2013, became the fastest player to 5000 ODI runs, equalling West Indies' Viv Richards record, reaching the mark in 114 innings.
The 27-year-old former world number one entered the contest having lost to the evergreen Williams seven times in as many matches but the resilient Dane served and retrieved brilliantly to emerge with a deserved victory after 88 minutes. "I hope I'll still be part of the game".
The Romanian was presented with a trophy and a ring on Sunday to commemorate her achievement, and says the main goal for next year is to win a grand slam.
"I think it's been an wonderful journey and fantastic career that I can be proud of", the 37-year-old Hingis said.
Wozniacki seemed headed for a third straight win after dominating in the early stages, making just one unforced error as she raced through the first set in 22 minutes.
Chelsea boss Conte: Kante becoming top, top player
Conte added: "This was a good win, also because the other teams [around us] all won, apart from Tottenham who lost". N'Golo Kante returned to full training this week. "I think we have a run of games coming up where we have to win".