The hosts had the best opportunity of the first half as Iago Aspas fired just wide, but Betis carried a greater threat after the interval and finally made the breakthrough late on
Nacho's low cross found Molina just inside the area and the striker showed great presence and no little skill to turn and fire low past Javi Varas into the bottom corner.
Augusto Fernandez, Gustavo Cabral and Mario Bermejo then all passed up glorious opportunities as Celta pushed for a late equaliser, but a second straight defeat sees them remain just two points above the drop zone.
Celta boss Paco Herrera had named an extremely attacking line-up that contained five forward players, but despite his intent and that of a Betis side that came into the game in great form, there was a lack of clear-cut openings in the first period.
Ruben Castro saw an attempted lob from the edge of the area easily handled by Varas, while on-loan Arsenal striker Park Chu-young also saw an effort comfortably held by Adrian at the other end, but it was Aspas who nearly provided the spark for Celta as he accelerated past a pair of Betis defenders before pulling his shot just wide five minutes before the break.
That scare seemed to awaken the visitors at the start of the second half as Castro headed over and both Salva Sevilla and Molina drew smart saves from Varas.
However, it was down the left that Betis were looking dangerous and the goal eventually arrived from that area as Nacho broke clear and rolled the ball into Molina's feet where he held off his marker before turning and shooting low into Varas' left-hand corner.
Despite going behind so late on though, Celta will be desperately disappointed not to have taken something from the game after creating their three best chances of the match in the final few minutes.
Firstly, Fernandez blazed over when the ball fell to him six yards out from Bermejo's corner before Adrian produced a fine save to turn away Cabral's header from close range and Carlos Bellvis wastefully blasted the rebound over.
And the hosts' miserable evening was rounded off in stoppage time when Bermejo, having been played in by Enrique de Lucas, managed to round Adrian after his first effort was blocked, but only succeeded in hitting the outside of the post from a narrow angle.