Beleaguered Betis - who have only won twice in La Liga this season - took the lead through Ruben Castro on 17 minutes, but were unable to build on that advantage and slumped to a 3-1 half-time deficit at Estadio de Balaidos, with a Fabian Orellana brace sandwiching Charles' effort.
The situation worsened when Nolito put Luis Enrique's charges 4-1 ahead with 17 minutes remaining.
Although Castro notched a consolation, bottom club Betis slumped to a fourth straight defeat and have now gone 14 league matches without a win.
After withstanding sustained Celta pressure, Betis moved into a surprise lead when the unmarked Castro scooped Juanfran's superb cross past goalkeeper Yoel.
But the scores were levelled on 22 minutes when a terrific ball from Rafinha was headed home by Orellana.
The home fans were able to celebrate on two further occasions before the break, as Charles ghosted in at the near post to head home before showing great generosity to lay on Orellana's second.
There was no let up from the home side after the break and Celta deservedly grabbed a fourth when Nolito tapped in from close range.
Betis reduced the arrears in the 78th minute, Castro capitalising on uncertainty in the Celta box to fire home, but it was too little, too late for the visitors.
Calderon's evening worsened in injury time when Cedric Mabwati was shown a straight red card for a dangerous sliding tackle on Rafinha.
The win eases the relegation fears of Celta, who move up to 13th position, six points clear of the drop zone.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.