The home team were looking to bounce back from last week's 5-0 loss to Ajax and the result was a cagey first-half.
But Zwolle hit their stride in pursuit of a third straight win after the break and on-loan CSKA Moscow forward Tomas Necid made the 74th-minute breakthrough with his ninth goal of the season.
Feyenoord will regain third if they beat AZ Alkmaar on Sunday.
Mark Uth scored a goal in each half to lead Heerenveen to a 2-0 victory at NAC Breda - their first win since September.
Uth broke the deadlock 10 minutes before half-time when he converted Luciano Slagveer's cross from close range.
Heerenveen had breathing space after the hour when Uth collected Kenny Otigba's pass and skipped past a challenge before slotting home.
Cambuur are two places above Heerenveen in seventh following a 2-1 win over Go Ahead Eagles.
Henk de Jong's team were able to bounce back from back-to-back defeats as Martijn Barto opened the scoring in the 27th minute and Manchester City loanee Albert Rusnak crashed home a long-range effort with 18 minutes to play.
Denis Turuc reduced the arrears for the home team deep into stoppage time.
Elsewhere, third-bottom ADO Den Haag hit back from two goals down in a dramatic first half at the Kyocera Stadion before closing out a 2-2 draw with Excelsior.
Jordan Botaka teed up Luigi Bruins for Excelsior's 13th-minute opener and an incredible run of three goals in six minutes began when Ninos Gouriye doubled the visitors' lead.
Mike van Duinen finished off Roland Alberg's 36th-minute cross and full-back Gianni Zuiverloon completed the scoring five minutes before half-time.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.