The 56th-ranked Siniakova, who had injury problems of her own, took advantage of Wozniacki’s inconsistent serving to win 6-3, 6-4 for her second career title.
“I couldn’t imagine a better week. I’m so happy that I won,” Siniakova said. “I was just enjoying the game.”
Meanwhile, Wozniacki has now played five finals in 2017 and lost them all in straight sets. She’d been seeking her 26th career title but first on clay since 2011, when she was the world No. 1.
“It was a tough match. Katerina played very well,” Wozniacki said.
Both players took medical timeouts following the first set as Wozniacki had problems with her left wrist and Siniakova with her right arm.
Wozniacki reacted well to go a break up at 3-1, but the Dane then lost her next two service games as her Czech opponent regained the upper hand.
Siniakova was playing in the Swedish Open final for the second year in a row after losing last year to German Laura Siegemund.