The visitors had drawn their last six league matches, but gave themselves a chance to break that run when Luke Chambers headed home in the first half.
But Zohore turned the game on its head with strikes either side of half-time to make it nine goals from his last 10 matches.
Joe Bennett completed the job with just under half an hour to play as Cardiff claimed their first victory in five matches.
The hosts forced the issue in the opening exchanges and almost took the lead through Peter Whittingham's left footed free-kick.
But the Tractor Boys responded with a counter-attack moments later. Tom Lawrence broke into the Cardiff half and delivered an inch-perfect ball to David McGoldrick, but Allan McGregor produced a stunning save to deny him.
Ipswich made no mistake from another dangerous Lawrence cross to take the lead after 24 minutes.
Sol Bamba clattered into Jordan Spence on the left wing, and Chambers rose highest at the far post to head the resulting free-kick home.
Cardiff came close to levelling with a free-kick of their own, but Ipswich goalkeeper Bartosz Bialkowski reacted well to push Bennett's effort over the bar.
Zohore saw a tame shot saved moments later, but he was not to be denied his eighth goal in 10 games.
Jazz Richards whipped a cross into he far post and captain Sean Morrison headed the ball back across goal for the Danish striker to power home from close range after 36 minutes.
Junior Hoilett was cruelly denied a goal that would have given his side the lead when he turned and shot against the post from inside the penalty area.
But they completed the turnaround five minutes into the second half thanks to in-form striker Zohore.
The 23-year-old flicked a long ball onto Hoilett, who sent a deft back heel into the path of Zohore, and he calmly finished with his left-foot past Bialkowski.
And the game was up for Mick McCarthy's men after 63 minutes when Bennett scored his first goal for the Bluebirds.
Harris sprinted down the left wing before cutting inside past Cole Skuse and feeding the left-back, who fired in his first league goal since 2014.
Bluebirds skipper Morrison showed his defensive qualities to get in the way of a Brett Pitman shot to maintain the two-goal lead.
Hoilett should have made it four when he was found by Pilkington in the box, but he shot straight at the goalkeeper.