Striker Ruben Castro scored twice and set up a third, becoming the joint-highest Spanish scorer in La Liga alongside Sevilla's Alvaro Negredo with 15 goals.
With eight games left, Betis are level on 47 points with fifth-placed Champions League quarter-finalists Malaga who they trail due to an inferior head-to-head record.
Real Sociedad, who are fourth with 48 points and occupy the last Champions League qualifying berth, host Malaga on Saturday.
Castro, 31, showed great composure to pick his spot and fire past Tono in a crowded area in the 30th minute, opening up a typically intense regional derby at Los Carmenes.
Betis's Dorlan Pabon raced clear two minutes later only to see his lob come back off the crossbar but Castro was on hand to put away a second goal for the visitors.
Granada were still reeling from that double blow when goalkeeper Tono raced out to meet a Betis freekick but missed his punch and Paulao's looping header hit the bar.
This time it was covering home defender Inigo Lopez who inadvertently bundled the ball into his own net.
Granada, who twice had efforts ruled out for offside, were undone again at the start of the second half when Castro broke down the left and pulled the ball back for Pabon to stroke in the fourth.
Carlos Aranda's angled diving header in the 72nd helped Granada salvage some pride but they finished with 10 men after Guilherme Siqueira was shown a second yellow card in the 80th.
Betis's Angel Lopez completed the rout by running the length of the pitch to score on a counter-attack at the end.
Granada's first La Liga campaign in 35 years is heading for an uncomfortable finale. They are 16th with 28 points, having claimed only two from their last seven games, and sit just four points above the relegation zone.