Peru fell out of the running as both teams, who met in the 2011 Copa America third-place playoff won by the Peruvians, needed a victory to stay in the hunt for a place in Brazil next year.
Venezuela are in sixth place in the nine-nation South American group with 19 points and one match remaining, three points behind fourth-placed Ecuador and Uruguay, in fifth. Both have two matches left.
The top four at the end of the campaign next month qualify with the fifth-placed team meeting Asia's Jordan in a two-legged play-off for one more berth at the finals.
The visitors took the lead with their first chance in the 20th minute, Paolo Hurtado skipping over Fernando Amorebieta's challenge on the right and beating goalkeeper Daniel Hernandez with a low shot.
Venezuela equalised in the 37th minute when striker Salomon Rondon took a square pass from midfielder Cesar Gonzalez inside the box and shot low inside the near post.
Gonzalez put the home team in front in with a 62nd-minute penalty after Peru defender Carlos Zambrano handled the ball.
Venezuela captain Juan Arango hit the bar with a fine dipping free kick in the 72nd minute and five minutes later they went 3-1 up with substitute Romulo Otero's goal inside the base of the post from Yohandry Orozco's pass from the right.
Zambrano pulled a goal back for Peru with a header one minute from time.
Peru, who have not been to the finals since 1982, have not won a qualifier away in 22 matches spanning nine years since a 3-1 victory against Uruguay in Montevideo in 2004.