The 26-year-old midfielder, who was out of contract in the summer, has switched Championship clubs after agreeing a four-and-a-half-year deal.
Forest rejected an offer from Midlands rivals Derby County earlier this month.
Lansbury, signed from Arsenal in 2012, has hit six goals in 19 games this term, including a late equaliser when Forest drew 2-2 at Villa in September.
But he has not played since suffering a hamstring injury before the 3-0 loss at Derby on 11 December.
A takeover of Forest fell through last week, after which the Reds sacked manager Philippe Montanier.
It followed a run which has seen them take just two points from a possible 21 to leave them only three points above the Championship relegation zone.
By contrast, Steve Bruce's Villa are seven places, and eight points, higher, in 13th.
Lansbury is Bruce's second January signing, following the arrival of goalkeeper Sam Johnstone on loan from Manchester United, while Rudy Gestede was sold to Middlesbrough and Aly Cissokho and Pierluigi Gollini have both gone out on loan.
Find all the latest football transfers on our dedicated page or visit our Premier League tracker here.
Aston Villa have signed Nottingham Forest captain Henri Lansbury for a fee believed to be in excess of £2.75m.