Muller took the lead on the exit of Remus on lap three which was then followed by Paffett attacking Muller but unable to make a move.
The order of the top four otherwise remained unchanged until Rast pitted on lap 17.
Di Resta followed suit a lap later but had to surrender third to Rast, who then also passed Paffett next time around after a poor stop for the Briton.
Rast then moved ahead of Muller soon afterwards and cruised to the finish, winning his fourth race in a row and closing the gap to the championship lead to 30 points ahead of the Hockenheim finale.
Muller took second as Paffett and di Resta battled for third, with the Scotsman managing to make a move shortly after their pitstops.
But Paffett was able to fight back this time around at Schlossgold and secured third, 2.2s ahead of di Resta, whose points lead is now down to just four.
Joel Eriksson and Pascal Wehrlein were fifth and sixth after the start and they kept their positions until the finish.
Timo Glock was investigated but escaped a penalty for forcing Edoardo Mortara off track to take seventh ahead of Mike Rockenfeller.
Mortara lost two places in his brief off-track excursion and then fell behind Philipp Eng on the last lap to finish 10th.
Daniel Juncadella was attacking Glock for seventh in the dying stages but went off at Remus, eventually settling for 11th.
Mercedes wildcard Sebastien Ogier had to make an additional pitstop to clean his windscreen and was 17th, a lap down.
After mechanical issues in qualifying, Lucas Auer also had to retire in the pits in the race as well, as Augusto Farfus stopped on track.
Source: Story and image – Motorsport.com