Zwolle started the brighter of the two sides, testing FC Twente goalkeeper Nick Marsman on a couple of occasions, but he was finally beaten on 26 minutes when Lars Veldwijk sent him the wrong way from the penalty spot.
Zwolle thought they had doubled their lead before the break through a Veldwijk header, but the goal was ruled out for offisde.
As the second half began Twente immediately found an equaliser, as the effective Ziyech produced a simple finish to beat Begois.
The visitors came close to taking the lead on 56 minutes, as Kamohelo Mokotjo slipped past the Zwolle defence to fire a shot, but his effort went wide.
The hosts soon regained some momentum, though, with Veldwijk coming close to earning the lead for his side after meeting an inviting Sheraldo Becker cross, but his attempt fell to Marsman.
Zwolle did regain the lead on 63 minutes through Ben Rienstra, who picked up Veldwijk's lay-off to finish from close range.
Twente came close to finding another equaliser before the final whistle as Jesus Corona had a one-on-one opportunity against Begois, but the keeper made another save to secure the three points for the hosts.