The Hyundai driver faced a 28.4s deficit to Rovanpera, who had led the rally from Friday’s first stage, heading into the penultimate stage when the heavens opened.
Tanak made the most of a superior tyre package - two wets, two softs - over Toyota’s Rovanpera - two wets, two hards - to reel in and claim the rally lead in stunning fashion.
The 2019 WRC world champion managed to claw back 29.8s from Rovanpera in the treacherous conditions while his rival struggled to get heat into his hard rubber.
"I didn't know where this weather came from,” said Rovanpera.
“We had no idea there was going to be rain, and we cannot match him [Tanak] with these tyres. The hard is not working at all and there is not much more we can do.”
Rally Croatia is now set for a final stage showdown with Tanak holding a slender 1.4s advantage over Rovanpera. The power stage is currently dry but Tanak was faster than Rovanpera in the first pass of that test this morning.
With Tanak and Rovanpera the only Rally1 crews to have taken wet tyres, the rest of the field struggled in the desperately wet conditions and were reduced to crawl on slicks. Luckily all Rally1 crews reached the Stage 19 finish despite being on the wrong tyres.
In the end, WRC2 driver Emil Lindholm posted the second-fastest time on the stage some 16.3s slower than Tanak, while Britain’s Chris Ingram was third-fastest in his WRC2 Skoda.
Hyundai’s Thierry Neuville cemented his third spot overall as he completed the stage more than a minute faster than podium rival, M-Sport’s Craig Breen, who suffered a spin.
Neuville has a 1m42.4s margin over Breen heading into the last stage, while Toyota’s Elfyn Evans held firm in fifth ahead of teammate Takamoto Katsuta.
The final stage is due to begin at 1218 BST.