With Romelu Lukaku and Timo Werner still sidelined, Ziyech stepped up for the holders in a much tougher game than the first meeting with the Swedish side which ended 4-0.
Tuchel made three changes for the clash at Eleda Stadion, with Reece James and Ben Chilwell rested while N’Golo Kante was absent due to muscle fatigue.
Captain Cesar Azpilicueta and Marcos Alonso were recalled and the former was involved straight away when he passed to Kai Havertz, who went down inside the area but Anel Ahmedhodzic had perfectly-timed his tackle.
The Blues dominated possession during the opening exchanges but a quick break which resulted in Sebastian Nanasi having a shot blocked after nine minute was a reminder of the hosts’ threat.
Azpilicueta tested goalkeeper Johan Dahlin for the first time soon after and Ziyech forced the Malmo stopper into another save from a tight angle moments later.
Ruben Loftus-Cheek was the other Chelsea player recalled following the win at Newcastle and after he had two decent efforts go wide, it was the academy graduate who created the best chance of the first half with 29 minutes on the clock.
Jorginho picked out the England midfielder with a trademark slide pass and Loftus-Cheek carried the ball well before he released Havertz, but the German attacker hesitated for too long and it allowed Dahlin time to come out and block his attempted chip.
The Malmo goalkeeper did not look so assured three minutes later when he spilled Andreas Christensen’s long-range effort but good defending prevented Alonso from tapping home, and then the Spaniard saw another shot blocked after Dahlin had failed to gather Loftus-Cheek’s cross.
In spite of the visitors’ dominance, a lack of clear-cut chances had left Tuchel frustrated on the touchline and he saw the home side almost take a shock lead on the stroke of half time but Antonio Mirko Colak volleyed wide after a wonderful through ball by Sergio Pena.
While there were no substitutions at the break, the Chelsea manager made a subtle change, with Ziyech and Hudson-Odoi swapping positions.
It brought an instant impact, with the opener arriving in the 56th minute to silence the partisan crowd.
Hudson-Odoi, now out on the right, played a smart one-two with Havertz and had the presence of mind and quality to produce a cross from deep to the back post, where Ziyech was on hand to tap home for his second goal of the season.
Thiago Silva almost made it 2-0 with 67 minutes on the clock when he flicked Ziyech’s corner goalwards but Ahmedhodzic had got back on the line to clear.
Malmo boss Jon Dahl Tomasson had made his first two changes by this point, with ex-Blackburn and Norwich ace Martin Olsson introduced, while an ambitious effort by Erdal Rakip sailed harmlessly over the crossbar.
Ross Barkley and Christian Pulisic were brought on with 16 minutes left, with the American back after a two-month absence with an ankle injury.
Loftus-Cheek, who had been one of Chelsea’s best players, remained on the pitch and created an opportunity that should have wrapped up the points soon after.
The midfielder brought down a pass on his chest and put Havertz through but the Germany was denied by Dahlin.
Pulisic also squandered a great chance in stoppage time but it mattered little, with Chelsea winning following a 10th clean sheet of the campaign.