Barcelona star Villa was unstoppable against 10-man Chile, who had Marco Estrada harshly sent off for what referee Marco Rodriguez saw as a trip on Fernando Torres.
Rodrigo Millar pulled one back for Chile right after the restart with a deflected shot from the edge of the area.
But Spain held on comfortably and Villa should have added two more in the second half, as their horrendous start to the World Cup with a shock loss against Switzerland was all-but forgotten.
The result means Chile finished in second spot, handing them a tough task against Brazil in the knockout stage, while group winners Spain face Portugal.
Spain recalled Iniesta to the starting line-up after the Barcelona man missed the win over Honduras - and boss Vicente Del Bosque kept faith in misfiring Liverpool striker Torres.
And it was Torres who enjoyed the first chance of the night in the third minute, but could only head Xabi Alonso's free kick well over the bar.
Spain, who needed a win to guarantee progress to the knockout stages, looked good going forward but were shaky in defence.
And they almost went a goal down in the 11th minute as Chile attempted to beat Spain at their own game, when Jorge Valdivia cut right through the opposition defence to cross for Mark Gonzalez, but he booted high over the bar from eight yards out.
But Villa - with just his third touch of the ball - put Spain in front on 24 minutes with a stunner from 40 yards out after Bravo had come way off his line to clear.
Bravo ran well out of his box to boot clear, but the ball went straight into the path of Barcelona man Villa, who kept his cool to kick over Torres and the Chile keeper into the empty net.
Then Spain started to turn on the style and Iniesta made it two after Villa had sprinted down the left side to provide the cross for his new Barcelona team-mate.
Things got worse for Chile after referee Rodriguez harshly sent off Estrada, after Torres was laid out at the beginning of the move which led to the goal.
Torres looked to have tripped over his own feet with Estrada chasing him, but Mexican ref Rodriguez saw differently and branded a second yellow to the Chile midfielder.
Chile may have gone into the break on the back foot, but they refused to sit back despite being a man down.
And straight after the restart they pulled one back, as substitute Millar fired home - although his shot from the edge of the area took a massive deflection off Gerard Pique.
Torres's night was over after just 54 minutes, after the forward had looked off the pace for his entire spell on the park, to be replaced by Arsenal's Cesc Fabregas.
Fabregas immediately had an effect, threading through for Villa twice, but his possible future Nou Camp team-mate failed to capitalise.
But Villa could have had a hat-trick by the hour mark if it wasn't for some dogged - and brave - defending in the box from Mauricio Isla.
Chile: Claudio Bravo; Mauricio Isla, Gary Medel, Waldo Ponce, Arturo Vidal, Mark Gonzalez, Marco Estrada, Gonzalo Jara, Jorge Valdivia, Jean Beausejour, Alexis Sanchez.
Spain: Iker Casillas; Sergio Ramos, Gerard Pique, Carles Puyol, Joan Capdevila; Xabi Alonso, Xavi, Andres Iniesta, Sergio Busquets; Fernando Torres, David Villa.