Jorge Molina had a huge chance for the away side after just five minutes, getting on the end of a cross with his head but steering the effort just wide.
The home side had a chance to take the lead again on 17 minutes when Aleix Vidal was given the ball in the box, however, the forward could only send his effort wide of the post.
Adan pulled off another fine save on the half-hour mark to deny Oscar Diaz's header, which was destined for the bottom-left corner.
Minutes before half time, Braian Rodriguez came close to giving Betis the lead with a powerful header, but his effort went just wide of the mark.
Almeria took the lead seven minutes into the second half through Oscar Diaz, who got on the end of a cross from Vidal to make it 1-0.
The home side's lead didn't last long, though, as Betis equalised on 60 minutes through Rodriguez, who fired into the bottom-right corner after being found by Juan Carlos.
Rodriguez then turned provider on 71 minutes when he found Salva Sevilla on the edge of the box, who then smashed it into the bottom right corner to make it 2-1.
Almeria began to push forward in a bid to turn the game around and climb out of the relegation zone with three points.
The home side grabbed an equaliser on 77 minutes through Vidal, who reacted quickly to get in front of the goalkeeper and finish well.
Ramon Azeez scored a dramatic winner for Almeria four minutes into injury time, climbing above the defence to plant his close-range header into the bottom left corner and deliver a vital three points.