A bright start from Boro saw them win three corners in an opening five minutes when Luke Williams might have had a hat-trick to go with the one he scored against Blackburn U21s seven days ago.
A low shot fizzed through the penalty area before being deflected off target and then another two efforts went just wide.
An open game saw Villa settle and force Connor Ripley into two smart saves as he tipped round Andras Stieber's terrific 25-yard shot then gathered a low curler from Jack Grealish, who tried his luck from the edge of the penalty area.
Bradley Fewster set off on an impressive dart down the right, only just overrunning the ball as he entered the penalty area, before Courtney Cameron intercepted midway inside the Boro half, thwarted only by stout defending from Christian Burgess.
The visitors started to see more of the ball, using Daniel Johnson as an outlet, but Adam Jackson, Burgess, Andre Bennett and Paul Weldon formed an effective unit.
Fewster, in his first start at this level, caught the eye and another good run, this time through the middle, was only thwarted on the edge of the Villa box.
Half-time: Boro 0 Villa 0
Continuing its open pattern, the game produced two chances in the opening minute as Williams and Graham Burke both went close.
With nine minutes of a fast-paced second half played Villa cut through just left of centre and Johnson forced Ripley into a decent save at his near post with a low shot.
A brave clearing header from Jackson wasn't without cost, he needed treatment before watching as a left-wing corner presented Janoi Donacien with a very difficult chance at the back post that he headed over.
Merouane Zemmama had a shot blocked before Bennett ended a fine run with a low shot which was also blocked.
Zemmama then set up the lively Adam Reach, who won a corner with a low effort that was turned behind, just a few minutes before Fewster headed really effort against the bar.
He headed his next effort at Bradley Watkins in the Villa goal before the visitors broke swiftly to set up Grealish, who will have been disappointed to have pulled a good chance wide from eight yards.
Jordan Jones, on for Marcos Rhoden before the hour, brought a decent save from Watkins after catching the Villa defence by surprise.
A move started with a smart thrown out from Ripley saw another sub, Ryan Brobbel, feed Williams just up from the right edge of the penalty, but his shot took a wicked deflection and looped just over.
Boro: Ripley; Bennett, Weldon, Rhoden (Jones 57), Burgess, Jackson, Zemmama, Morris, L Williams, Fewster (Kneeshaw 85), Reach (Brobbel 75). Subs: Montgomery (gk); Waters.
Aston Villa: Watkins; Barton, Kinsella (Calder 80), Stieber, Devine, Donacien, Grealish, Carruthers, Burke, Johnson, Cameron. Subs: Lyden, Crooks, Sellars.