Jordi Alba opened the scoring for the world and European champions, who were made to suffer until Manchester City striker Alvaro Negredo wrapped up the win late on.
Spain's closest rivals in the group, France, could only draw with Georgia and slipped three points behind Spain.
Vicente Del Bosque's side did not produce the finest of performances, but now just need to beat either Belarus or Georgia next month to secure their place at the tournament in Brazil next summer.
Del Bosque kept his faith with Iker Casillas, who has not played a single minute for Real Madrid this season, and started the Spain captain ahead of Victor Valdes, allowing him to pick up his 150th cap for his country.
An injury crisis in defence meant Atletico Madrid midfielder Koke was handed his first competitive start for Spain, playing at right back.
Mario Suarez also made his first start in a competitive match for his country, standing in for the injured Sergio Busquets in midfield.
Casillas was called into action early on, blocking a shot from Teemu Pukki after 13 minutes.
Pukki, who scored Finland's equaliser in the 1-1 draw in Gijon in March, again came close to scoring moments later, shooting just wide from the edge of the area.
Spain had dominated possession but failed to penetrate the opposition defense, but took the lead a minute after Pukki's second attempt.
Cesc Fabregas lofted the ball over the Finland defense and Alba controlled it with a deft touch of the left foot on the left hand side of the area, allowing him to cut inside and then roll the ball under the Finland goalkeeper to score.
Spain preserved their lead until the half-time break and were slow off the mark in the second half too, their only attempts being long-range efforts from Andres Iniesta and Suarez which missed the target.
The visitors got an almighty scare on the hour mark when former Tottenham player Teemu Tainio headed an in-swinging corner dangerously close to Casillas' near post.
They were let off the hook again a few minutes later, when Alexander Ring raced onto a ball over the top and got ahead of Sergio Ramos, but could not aim his shot on target.
Negredo was denied a goal by a brilliant last-ditch tackle by Petri Pasanen, frustrating the Manchester City striker after he had been put through on goal thanks to an exquisite pass by Xavi.
At the other end, Pukki missed a golden chance to equalize, shooting straight at Casillas after he was put through on goal.
Spain's nerves were soon calmed, however, when substitute Jesus Navas ran down the right wing on a counter-attack and played in a low cross towards his City teammate Negredo, who made no mistake.