Lewis Baker scored a first-half own goal and Crooks struck in each half before Nick Powell scored a stoppage-time consolation for the Potters.
Boro remain seventh in the table and now need to win their final game at Preston to have any chance of making the play-offs. They can currently catch Luton or Sheffield United.
The hosts had an early chance when Isaiah Jones came down the right and found Andraz Sporar, but the forward was offside.
Stoke also enjoyed spells of possession early on but Boro defended well, before Baker had a shot from distance 10 minutes in but his effort flashed wide of a post.
Boro took the lead in the 21st minute when captain Jonny Howson won the ball in the middle and, after finding space, picked out Crooks.
The midfielder made an instant impact on his return from suspension, slotting the ball past goalkeeper Joe Bursik and into the bottom corner.
The hosts struck again just four minutes later with Howson once again the provider. His free-kick from outside of the box took a deflection off Baker and into the net.
Duncan Watmore thought he had added a third in the 28th minute after Dael Fry nodded down from a corner and the forward blasted the ball home from close range, but it was ruled out for offside.
Bursik was forced into a save just before the break when Marcus Tavernier’s corner was launched into the six-yard box but the Potters goalkeeper got a firm hand to claw it away.
The Potters had their first chance of the game in the 54th minute when substitute Powell drilled the ball low and forced goalkeeper Luke Daniels to make a good save to his right.
Crooks scored his second of the game and Boro’s third in the 71st minute when he stabbed home Fry’s knockdown from close range.
With 10 minutes to go, Jacob Brown blazed wide of a post before his header moments later glanced across goal and out.
Stoke scored a consolation in stoppage time when Mario Vrancic’s shot was saved but Powell tucked away.