"I can confirm that we have reached agreement with Liverpool following an improved offer received earlier today and the submission of a formal transfer request by Stewart Downing, and have subsequently given them permission to speak with the player," Villa chief executive Paul Faulkner said.
Kenny Dalglish's Liverpool side, who finished sixth last season, have been on a midfield recruitment drive as they bid to break into the top four with Sunderland's Jordan Henderson and Blackpool's Charlie Adam having already joined the club.
"Liverpool FC tonight announced they had agreed a fee with Aston Villa for the transfer of Stewart Downing," Liverpool said in a statement without giving any financial details.
British media put the fee at 20 million pounds.
"Liverpool have now been granted permission to discuss personal terms with the player and arrange a medical," the club added on its website.
Downing made his name at Middlesbrough thanks to his crossing ability and has earned 27 England caps, although the 26-year-old has never been a regular starter for his country.
Liverpool, who like Villa have an American owner, began their push to 'Buy British' with the capture of England striker Andy Carroll from Newcastle United in January.
Villa came ninth last season after a topsy-turvy campaign and new coach Alex McLeish has already lost winger Ashley Young to Manchester United with Downing set to follow.
However, Faulkner said on the club's website: "We believe there are replacements available in the market who can strengthen our squad ahead of the coming season, and we are in discussions as such.
"We are working hard to conclude a deal for a goalkeeper who we believe can also strengthen the side," he added.
Villa's first-choice stopper, 40-year-old former U.S. international Brad Friedel, joined fellow Premier league club Tottenham Hotspur last month.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.