The hosts added 20 to their overnight 420-9 to set Durham 447 to win, before seamer Liam Plunkett removed three of the visitors' top four batsmen.
Jack Burnham made 50 from number six on his Durham debut to delay the result, before they were all out for 263.
Yorkshire's win means they extend their Division One lead to 53 points.
The reigning champions are still unbeaten this season having won eight of their 11 games.
After Tim Bresnan (2-35) caught and bowled opener Mark Stoneman for 37, Durham moved to 107-1.
However, Plunkett removed Graham Clark and Scott Borthwick, to a superb diving catch by Glenn Maxwell at third slip, in consecutive overs.
Wickets continued to tumble throughout the afternoon, including Jamie Harrison being run out for a second ball duck, before Rashid (3-66) ran through the tail.
Plunkett took the final wicket, removing 18-year-old Burnham, who batted 115 balls and more than two hours for his half-century.
Durham's Jack Burnham told BBC Newcastle:
"It's been a debut to remember. It's what I've been dreaming of since I was a child. To come and play with Paul Collingwood is a dream come true and I've loved every minute.
"You've got to give it to Yorkshire, they did outplay us in the last few days. Sometimes you've got to give the opposition a pat on the back.
"I enjoy playing at Durham. There are always opportunities there so I'm happy I made the most of the chance I got in this game."
Yorkshire tightened their grip at the top of the Division One table with a comfortable 183-run victory over Durham at Scarborough.