The hosts came to into the clash with a slight advantage, having won the first leg 1-0 over the weekend.
After a quiet start this week, the game's first chance arrived after 19 minutes as Villa's Conor Hourihane forced Darren Randolph into a good save with a shot from the edge of the box.
The hosts again went close in the 39th minute as James Chester got on the end of Lewis Grabban's header before pulling his effort wide of the mark.
That proved to be the final clear-cut chance in the half, as Boro's talisman Adama Traore was kept quiet down the flanks.
Boro got off to a better start in the second half and signaled their intent early on, with Muhamed Besic firing just wide of the target after 52 minutes.
Randolph came to Boro's rescue with 15 minutes as the shot-stopper produced a fine save to keep out Jack Grealish's powerful strike.
Boro went agonisingly close to leveling matters in the 89th minute as Stewart Downing rattled the woodwork with a strike from distance.
In the end, neither side could find a goal on the night, which meant Villa advanced to the playoff final with a 1-0 aggregate win.
Villa will now face Fulham in the final at Wembley Stadium on May 26.