The world number 23 won 5-7, 7-6 (7/4), 6-3 to add the Czech title to her victory in Tallinn the previous weekend.
Swiatek, who had won her 60th match of the season on Saturday, went into Sunday’s final having beaten Krejcikova in both of their previous meetings.
Last year, the 21-year-old Pole won in straight sets on Miami’s hard courts before winning in three sets on Rome’s clay two months later.
On Sunday, 2021 French Open champion Krejcikova took the difficult route to victory, trailing 5-1 in the first set before rallying to win the match in three hours and 16 minutes.
Swiatek’s defeat was only her second in 12 finals, and her first in three years, but she was two points away from her eighth title of the season with Krejcikova serving at 30-30 in the 12th game of the second set.
“I was just telling myself to keep going,” Krejcikova explained.
“She’s a fantastic champion.” She’s a great player, so I expected her to make it difficult for me. So I just said, ‘Okay, keep going.’ Everything will be fine.
“You will have your chance. That was my inner voice saying, ‘You’re going to make it.’
Don’t forget to follow us on Facebook | Instagram | Twitter | LinkedIn to get the latest updates from Cape Town Tribune