Nadal's grass-court winning streak ended at 14 when he fell 7-6 (5), 6-4, the first time he has lost to Lopez since 2003.
Fish defeated third-seeded Murray 6-4, 1-6, 7-6 (2) to reach the quarterfinals in a match continued from Thursday.
All of the top six seeds are out.
Nadal was unable to subdue a lively challenge from Lopez at any stage of the first meeting on grass of the two left-handers.
After an exchange of breaks in the opening two games, the first set went to a tiebreaker which Lopez sneaked 7-5 when Nadal netted a forehand.
In the second set, Lopez broke to lead 3-2 but Nadal leveled in the next game by breaking with a winning return.
Nadal then faced two break points at 5-4 and double-faulted to leave Lopez serving for the match.
Murray was furious when his match with Fish was halted on Thursday because of fading light.
The Scot had recovered from dropping his serve in the opening game which eventually cost him the first set, and he dominated the second. He had then recovered from 3-0 down in the final set to level at 3-3, and had wanted to continue.
However, after an appeal by Fish and the intervention of ATP Tour supervisor Tom Barnes, play was suspended and Murray remained on the service line and looked bewildered long after Fish had left the court.
On Friday, each player dropped just one point on serve as the set went to a decisive tiebreaker, which Fish dominated after the first four points had gone against serve.
Murray's third-round exit followed those of No. 2 Novak Djokovic, No. 4 Andy Roddick, No. 5 Marin Cilic and No. 6 Gael Monfils.
Fish was to play Michael Llodra of France later for a place in the semifinals.
Also, Sam Querrey of the United States, the highest seed left at No. 7, was taking on Xavier Malisse of Belgium, and Rainer Schuettler of Germany was playing Dudi Sela of Israel.