The striker has penned a four-year deal at the Sky Bet Championship club and is in line to make his debut in their season opener at Sheffield Wednesday on Sunday
The fee equals the second-highest transfer in the club's history, with Darren Bent Villa's record signing at £24million in 2011.
Villa boss Roberto Di Matteo said: "I'm delighted to bring Ross on board
He's a player with proven track record and plenty of experience in the division
"He is a player whose goalscoring record has been excellent everywhere he has been and we feel he can be an important addition."
McCormack joined Fulham for £11million in 2014 and scored 23 goals for the Cottagers last season and leaves having netted 42 times in his two-year spell
Norwich had been heavily interested in the 29-year-old Scotland international but failed to agree a fee with Fulham, who accepted Villa's bid on Wednesday
McCormack becomes Di Matteo's fourth summer buy after Tommy Elphick, Aaron Tshibola and Pierluigi Gollini as the club prepare for their first season outside the top flight since 1987.
Source : PA
Source: PA