He took the first set - without giving up a single break point opportunity - and put the Lopez serve under pressure for periods in the second set.
Venus matched the world No 28 blow for blow in some quality rallies, and forced a break point late in the second set, which would have given an opportunity to serve for the match.
But he couldn't take it - chipping a forehand return long.
Watch: Game, Set and Match Podcast
"I put myself in a great position and didn't come through on a couple of points," said Venus. "Some of them I had no control over. There were games where he was hitting spots and even if I was leaning that way I still wasn't reaching the ball. You only get a couple of chances."
"I'm disappointed with the result but the guy is a quality player and I gave myself break point in the second set to serve for the match and three break points to be back on serve at 5-4 in the third."
"I served well and kept trying to come forward when it was possible. I was trying to be aggressive and move up the court and come forward. [In terms of] execution - maybe there was a couple that I wish I could have back but you are never going to make every ball."
The New Zealand wildcard grabbed the crucial break in the sixth game of the opening set.
He then held his nerve - as Lopez saved two set points - before converting the third to wrap up the set in 36 minutes.
It was impressive stuff from the 29-year-old Kiwi, against the world No 35 who has six career titles and has reached the quarter finals at grand slams on four different occasions.
The second set went with serve until the final game, though Venus forced break point opportunities in the first and ninth game (two).
The third, at 4-4, will particularly rankle, as Venus hesitated on a Lopez second serve and sent his chipped return long.
Venus was under immense pressure in the next game.
He was down 0-40 at one point - saving three set points to fight back - before sending a backhand long on the fourth set point.
The final set was a nail biter.
Neither player could force a break point opportunity in the first seven games, as the serving standard lifted from both men.
Venus then played two loose points - a rarity in the match - to give Lopez an opening which he took, breaking the Kiwi for a 5-3 lead.
Venus responded in the next game, and Lopez was stranded at 0-40.
But Venus couldn't convert any of the three break points and Lopez finished the contest on his first match point.
"It definitely rates as one of my better performances out there on centre court," said Venus. "If not my best performance playing singles."
German wildcard Dustin Brown beat American qualifier Michael Mmoh 7-6 (4) 3-6 6-4 in an entertaining contest in the last match of the night.