Roberto Torres fired Osasuna ahead in only the second minute with Betis put under further pressure seven minutes before the break when Nono was sent off for his second bookable offence for a foul on Oriol Riera.
The problems continued for Betis with a 57th-minute own goal from Jordi Figueras putting Osasuna 2-0 up. Then, shortly after, the home side missed a penalty through Ruben Castro following a challenge by Andres Fernandez which saw the Osasuna goalkeeper sent off.
Jorge Molina Vidal did pull a goal back for Betis in the 80th minute but it was not enough to close the gap on second-bottom Rayo Vallecano or next-best Real Valladolid, who are both six points to the good in the other two relegation places.
The omens were bad for Betis pretty much from kick-off when Torres headed in the opening goal from close range in just the second minute.
Leo Baptistao forced three good saves from Osasuna keeper Fernandez in the first half-hour, but could not find the breakthrough, with any momentum lost when Nono was shown red in the 38th minute.
Jordi made the situation all the more desperate for Betis when he inadvertently prodded in Damia Abella's cross, but Castro should have done better from the penalty spot when he was brought down by Fernandez.
Substitute keeper Asier Riesgo's first action of the match was to face Castro's penalty, after Reira made way for the visitors, but Castro made the job easy as his strike hit the bar.
Molina's consolation came 10 minutes from time but Betis were unable to find another breakthrough to salvage a point.