Dan James opened the scoring, but Villa scored three straight times before the Whites battled back to earn a more than deserved point.
Story of the game
The visitors then settled in and opened the scoring after a mistake by the Villians. Rodrigo took the ball away from Tyrone Mings and found James, who finished across the face of goal into the bottom corner.
Mings then headed wide from corner and James smashed a 25-yard effort off of the crossbar.
A quick throw-in led to the equalizer. Philippe Coutinho gathered the ball on the edge of the box and he slid the ball into the corner past Meslier.
On the half-hour mark, Coutinho played a lovely ball in behind the Leeds defense that Jacob Ramsey controlled and finished to give the hosts their first lead of the game.
The same duo combined to give the Villains a two-goal advantage. Coutinho possessed the ball high up the pitch and found an onrushing Ramsey in space and he beat Meslier into the top corner.
Excellent build-up play on the wing created space for Rodrigo to send a cross into the box and after a deflection, James was on hand to head home his second of the match to cut the lead to one.
The visitors searched for an equalizer and Stuart Dallas had a go, his shot deflected into the hands of Villa goalkeeper Emiliano Martinez. Pascal Struijk then saw a header cleared off of the line by Mings.
Soon after, the Whites levelled. Struijk's header was blocked, but Diego Llorente was quickest to react and he applied a top-class finish to make it a 3-3 game.
The hosts were reduced to ten men when Konsa stuck his arm into Meslier's face as he tried to take a quick goal kick, which led to eight minutes of stoppage time.
Nothing came of the man advantage as the two teams shared the points in an enthralling contest.
Man of the match: Philippe Coutinho
He had a goal and two assists and also contributed many fine plays to show why Villa took him on loan.