Matt Taylor gave Rovers a second-half lead with a powerful header from Liam Lawrence's corner.
Lawrence turned from provider to scorer 22 minutes later as he struck home an exquisite 25-yard free-kick before Taylor netted a second header soon after following Chris Lines' corner.
Cristian Montano could have added a fourth, but Callum Preston saved well.
Rovers move up a place to third in the table on goal difference following Plymouth Argyle's 2-1 loss at Devon rivals Exeter City, while Crawley stay in 16th place.
Crawley Town boss Mark Yates told BBC Surrey:
Media playback is not supported on this device
"We came to a team who are in form and have momentum with them and have got a goalscorer who has 25 now and we added to our own downfall conceding the goals we did.
"It was three set-pieces and we normally pride ourselves on being a decent set-piece side.
"I'm proud of the group and we've had so many things that have hindered us this year, for example the numbers, the training ground and I am not making excuses but it's been a tough year.
"I am just pleased after 40 games hopefully we are not near that bottom two and we haven't been in that bottom two all season."
Bristol Rovers moved back into the League Two play-off places with a comfortable win over Crawley Town.