
Tottenham made a flying start when Rodrigo Bentancur put them in front with a close-range finish after five minutes.
However, Villa, who arrived in north London on a seven-match unbeaten run in all competitions, levelled in the 37th minute when England midfielder Rogers let fly with a dipping right-foot shot that flew past Guglielmo Vicario.
Both sides had chances after the break but it was Villa who took the points as Buendia curled a low shot into the far corner in front of the visiting fans.
After a slow start to the campaign, Villa are up to 10th in the table with 12 points while a second league loss of the season for Tottenham left them in sixth.