The Kazakh, who was the No.1 seed at the tournament, won 4-6 6-4 6-2 in two hours and 18 minutes to finally claim her first crown, having lost her previous two appearances in finals.
Unseeded Zidansek was also seeking a first full title — her only previous win having come at 125k level — but the wait will continue after she failed to build on her lead, paying the price for being broken six times.
Zidansek had won the only previous meeting between the pair in Rabat three weeks ago, but while this contest also took three sets to settle, it was Putintseva who held her nerve.
The Slovenian made a rapid start but missed a chance to go 4-0 up and a first set that contained five breaks was soon sitting at 4-4. But Zidansek gathered herself to hold serve in a close ninth game before converting her second set point in the next to move ahead.
Putintseva, ranked No.39 in the world, saved a key break point early in the second and broke Zidansek in the next game to reverse the momentum and eventually claimed the set to force a decider.
There had been eight breaks in the opening two sets, but Putintseva produced when it mattered most, not allowing Zidansek a single opportunity in the third and breaking twice herself, claiming victory with her second match point.
"It's unbelievable, honestly," Putintseva said. "It was a great fight, a great game for the final. My character is to keep fighting."