Shakib four sinks Yorkshire
Worcestershire 183 for 7 beat Yorkshire 142 by 41 runs
Worcestershire retained their top-four place in the Friends Life t20 North Group and dealt a blow to Yorkshire's hopes of reaching the knockout stages with a 41-run victory at New Road.
Competition-best half-centuries by Alexei Kervezee and James Cameron swept the Royals to an imposing 183 for 7 and their spin-and-seam combination - led by Shakib Al Hasan with four for 31 - restricted Yorkshire to 142.
It was another convincing performance by a fast-improving team who have performed well in the last month with two LV= County Championship wins and four victories in six completed games in the shortest format.
Moeen Ali (40) gave them a high-tempo start before he was caught at deep mid-wicket off Richard Pyrah, the first bowler to achieve any degree of control in a useful spell in which Shakib squirted a chance to point. Kervezee (56) and the left-handed Cameron (55) then hit nine fours and four sixes between them and took the game away from Yorkshire with a whirlwind partnership of 77 from 50 balls.
England seamer Tim Bresnan, now easing his way back into the county game after a calf injury, conceded 47 runs for one wicket but international team-mate Ajmal Shahzad dodged the worst of the punishment by taking 3 for 30.
Yorkshire's batsmen were under pressure from the outset and there was no way back when the top four were dismissed inside the opening six-over power play. Andrew Gale and Jonathan Bairstow skied top-edges off the seamers and Shakib got to work with wickets from his third and fifth balls. He bowled Anthony McGrath and had Adam Lyth stumped by some distance.
Gary Ballance and Joe Root, with 26 apiece, tried to mount some kind of a recovery but Bangladesh's slow left-armer, Shakib, accounted for Root and Shahzad to complete a personal-best return in Twenty20 cricket.
Despite what was a forlorn effort by Bresnan with an unbeaten 25 from 17 balls, Worcestershire were home and dry when paceman Gareth Andrew (three for 17) took the last two wickets in successive deliveries in the 19th over.