Opponents Litex Lovech took a surprise lead after just 10 minutes as Brad Friedel was deceived by a free-kick from local hero Ivelin Popov.
Villa then had a goal disallowed when Gareth Barry headed in a fine James Milner centre, only to discover that Craig Gardner had been caught offside.
But the away side were level on the stroke of half time as the prolific Nigel Reo-Coker scored his second goal in two games.
It was largely thanks to Litex keeper Uros Golubovic, who rushed out and proceeded to mis-kick the ball, leaving the Villa midfielder with an open goal.
The home side were reduced to just nine men in the second half as Cedric Gambon saw red for two bookable offences and Mihail Venkov blatantly handballed on the goal line.
Gareth Barry slotted away the resulting penalty and Stiliyan Petrov sealed the win in the closing minutes.
Tricky
If the scoreline was comfortable, the Villa performance certainly was not.
It was a particularly irksome affair as the pitch, resembling the JJB in late December, restricted any sort of flowing football.
With the flair players unable to shine it was Reo-Coker who took the game by the scruff of the neck for the Villans.
The dynamic midfielder appeared all over the pitch and, buoyed by his goal against Spurs on Monday, he surged forward to support Gabby Agbonlahor in offensive positions.
Gareth Barry failed to exert his usual influence on the game as Litex playmaker Tom proved a tricky opponent.
Carlos Cuellar, who was making his Villa debut, looked composed at the back but inevitably displayed signs of fatigue.
For Villa, it's almost job done but they must remain cautious for the second leg and beyond.
At times they were exposed and will use this game as a distinct learning curve.