Two goals from Cristiano Ronaldo ensures manager's 100th game in charge ends in victory as Primera Liga leaders go 13 points clear.
Happy anniversary for Jose Mourinho as Real Madrid extend lead
But it was a tough night for Mourinho's men who had to come from behind before they could celebrate a 21st victory in 22 games.
Jorge Molina scored after nine minutes for Betis before Gonzalo Higuain drew Real level.
La Liga's top-scorer Ronaldo then put Madrid ahead after the break. Betis refused to roll over and Jefferson Montero equalised before Ronaldo secured the win with his 32nd goal of the season after 72 minutes.
"It was a game in which neither side was in control and so you didn't know who was going to win. At times it is better to be more defensive," said Mourinho.
"The game was full of bad passes and so perfect for counter-attacking. I think that a draw would have been a fairer result but it could have finished 2-4 or 4-4 easily.
"Betis aren't a big team but they play exciting football for people to enjoy and the attitude of their coach (Pepe Mel) is fantastic."
Ronaldo had a shot saved by the keeper in the opening exchanges but Betis went ahead from a counter-attack with Ruben Castro's defence-splitting pass setting up Molina who fired home past helpless goalkeeper Iker Casillas.
Betis have impressed with their adventurous football since their return to the top flight and were making life hard for Real who struggled to take control of the game and appeared uncomfortable against the pace of the home side.
Real responded with their first clearcut chance with Mesut Ozil lofting the ball over the defence for Higuain to run onto and the Argentine finished clinically.
Before half-time, Salva Sevilla hit the crossbar with a free-kick for Betis while Higuain and Ronaldo also went close with openings at the other end.
Real looked like they had asserted their authority on the match with Ronaldo spinning and slotting the ball home after 51 minutes but minutes later Betis were level.
The visitors failed to clear a corner and Montero, who had been a threat all game, pounced with a drive from the edge of the area.
Both sides pressed forward and Montero had a strike well saved by Casillas while, at the other end, Marcelo was denied by Betis keeper Fabricio Agosto.
Ronaldo restored Real's lead when he was quickest to react inside the area after Agosto parried a Sergio Ramos header.
Barcelona will look to reduce the deficit on Sunday back to 10 points when they play away to Racing Santander.