The hosts were also denied two penalties and had what they thought was an undeserved spot-kick awarded against them.
Iker Muniain opened the scoring in the first half from 12 yards and Damien Perquis, who had conceded the penalty, was sent off before the break.
Lolo Reyes then joined him in the dressing room in the second half after picking up two bookings, and 20-year-old Guillermo Fernandez scored his first goal for Athletic Bilbao to seal the points and complete a miserable afternoon for Gabriel Calderon's side, who languish at the bottom of the Primera Division with just 14 points from 25 games.
Athletic, meanwhile, ended their unwanted run of three games without a win to tighten their grip on fourth spot.
Ernesto Valverde's side were without their two top scorers, with Ibai Gomez injured and Aritz Aduriz suspended, so Kike Sola made just his second league start of the season.
And the first chance of the game fell to the former Osasuna striker, who was denied by Antonio Adan after he had been played in by Ander Herrera.
The Betis goalkeeper then had to make a double save to keep out a free-kick from Markel Susaeta and then prevent Carlos Gurpegi from taking advantage from the rebound, while San Jose volleyed wide following a free-kick.
Betis thought they should have been awarded a penalty in their first venture forward, Ruben Castro going down after a challenge from Mikel Balenziaga.
The striker was booked by referee Jesus Gil Manzano for diving and then the hosts' frustration reached new levels when a minute later Sola was brought down by Perquis and a penalty was awarded to Athletic, although the foul appeared to have taken place outside the area.
Muniain struck the penalty just beyond the grasp of Adan to give Athletic the lead and add to Betis' sense of injustice, as they also conceded a spot-kick in their Europa League game with Rubin Kazan on Thursday for a foul that happened outside the area.
Perquis was clearly affected by the decision and only eight minutes later made a rash challenge on Balenziaga, prompting Gil Manzano to hand out a second booking and reduce Betis to 10 men.
Betis made a bright start to the second period, but any hopes they had of reviving the game were dashed when Reyes was given a second yellow card for a handball, adding to the foolish booking he had picked up for contesting the penalty.
Betis' frustrations grew when Balenziaga appeared to block a goal-bound shot by Castro which went unnoticed by Gil Manzano, who on another day would have given a penalty to Betis and a red card to the defender.
Guillermo replaced Muniain with 10 minutes remaining and had an immediate impact, heading in a cross from Susaeta less than 60 seconds after coming on to kill the game.