Angel struck from close range on 88 minutes following good work from Luke Moore, despite Bruno N'Gotty's despairing lunge on the line.
El-Hadji Diouf's 82nd-minute goal from Ricardo Vaz Te's cross looked to have sealed victory for the home side.
Gary Speed hit the post as Bolton dominated early on, but Villa got their reward for some dogged defending.
Bolton, who were on the front foot for much of the game, were first to threaten, with Kevin Davies denied twice within a matter of seconds.
The striker latched on to the loose ball after Villa failed to clear N'Gotty's free-kick only for Thomas Sorensen to make a point-blank block.
From the rebound, the ball was sent back across goal, but Wilfred Bouma was able to intercept and concede a corner with Davies ready to pounce.
Bolton continued to press, with N'Gotty sending a header wide and Joey O'Brien bringing a save from Sorensen.
Villa could have taken the lead shortly after the half-hour when Lee Hendrie sent a short ball across the box to Milan Baros.
But the Czech striker miscontrolled when well placed.
The home side posed the greater threat, though, with Kevin Nolan and Speed both seeing goalbound shots blocked.
Speed went even closer five minutes before the interval when his header from Diouf's corner was tipped on to the post by Sorensen.
Bolton nearly broke the deadlock within a minute of the restart.
Diouf latched on to Davies' pass and slid the ball past the advancing Sorensen only for Aaron Hughes to clear off the line.
Villa were brighter in the second half and came close to breaking the deadlock through James Milner.
Bolton keeper Jussi Jaaskelainen, who had little to do in the first half, had to be alert to tip a fine strike from the youngster around the post.
The Finn was also scrambling when Gavin McCann unleashed a low right-foot effort, although the ball went just wide.
Bolton's fans and players were getting frustrated, as evidenced by bookings for Tal Ben Haim and Diouf, both for diving.
Yet the introduction of Vaz Te breathed new life into Villa.
The youngster was instrumental in setting up Diouf for the opener, although the Senegal striker did well to fashion enough space for the opening.
But just as the home fans were preparing to celebrate victory, Angel popped up to earn a point for Villa.
"It was the manner of their goal that annoyed me. No-one picked up Angel. We only played at 80% of our capacity.
"But I still feel we did enough to win. I don't think Villa offered much."
"We bounced back well after going a goal behind and took the game to them and got our just reward.
"Since our defeat against Doncaster we have come back strongly and are now on a good run in the League."
Bolton: Jaaskelainen, O'Brien, N'Gotty, Ben Haim, Gardner, Giannakopoulos (Vaz Te 80), Speed, Faye, Nolan, Diouf, Davies (Okocha 66).
Subs Not Used: Walker, Jaidi, Nakata.
Booked: Ben Haim, Diouf.
Goals: Diouf 82.
Aston Villa: Sorensen, Hughes, Mellberg, Ridgewell, Bouma, Hendrie (Angel 84), McCann, Bakke, Barry, Milner (Davis 83), Baros (Moore 76).
Subs Not Used: Samuel, Taylor.
Booked: Milner, Baros, McCann, Bakke.
Goals: Angel 88.
Att: 23,646
Ref: P Dowd (Staffordshire).