Real Madrid went top with a 1-0 win at Real Sociedad before being replaced by Atletico Madrid after they beat Rayo Vallecano 1-0.
But Barca held their nerve to overcome Betis, who had Heiko Westermann sent off for two bookings, with goals from Ivan Rakitic and Luis Suarez.
Each team has two matches remaining.
Relive the win that took Barcelona back to the top of the table.
Defending champions Barcelona had scored 14 goals in winning their previous two league games.
But they found it difficult to break down a Betis side who played with 10 men from the 35th minute after defender Westermann had tripped Rakitic to earn his second caution in the space of eight minutes.
The opening goal came five minutes into the second half when a Lionel Messi ball into the penalty area caused confusion between defender German Pezzella and goalkeeper Antonio Adan, and midfielder Rakitic was left with a simple tap-in for his 10th goal of the season.
The second goal did not come until nine minutes from time when Messi played through a perfect pass for Suarez to slot home his 54th goal of the season.
Barcelona keeper Claudio Bravo came off late on with a calf strain and will have further tests on the injury on Sunday.
Barcelona coach Luis Enrique: "It's a very competitive league and I think the three candidates are strong. No-one will slip up, we depend on ourselves.
"There is less to go (now). I am sure against Espanyol, Camp Nou will be packed to the rafters."
Barcelona beat 10-man Real Betis 2-0 to regain top spot in La Liga at the end of a day that saw all three title rivals spend time as leaders.