The British No 2 came on strong in the final set to triumph 6-4 5-7 6-3 and book a meeting with American Tommy Paul.
Norrie’s win came just hours after compatriot Dan Evans collapsed to a 5-7 6-4 6-0 defeat to Diego Schwartzman.
Norrie’s win extended his strong hard-court run which also saw him reach the final in San Diego earlier this month, beating Evans along the way. It heaped further misery on the Spaniard, the 2019 Wimbledon semi-finalist, whom Norrie famously beat in five sets on his Davis Cup debut in 2018.
That marked Norrie’s first professional season but few expected the surge into the world’s top 30 that would follow.
In an edgy encounter, Norrie, 26, was broken four times and saved 10 more break point opportunities, but pressured his opponent’s serve throughout and broke six times to seal victory.
British No 1 Evans, however, ran out of gas as he blew a set and a break advantage against world number 15 Schwartzman.
The Argentinian looked all-but beaten after losing the opening set and trailing 3-1 and 4-2 in the second before turning it around to dent Evans’s hopes of climbing into the ATP’s top 20.
Evans had reeled off five games in a row to take the first set 7-5, then broke to lead 2-0 at the start of the second.
But two unforced errors from the Briton, who had come from behind to beat Kei Nishikori in the previous round, allowed Schwartzman to break back to level at 4-4.
Evans failed to cash in on two more break points and that was the beginning of the end as Schwartzman reeled off all the remaining games to seal victory.
Top seed Daniil Medvedev withstood a late fightback by Filip Krajinovic to reach the fourth round.
The newly-crowned US Open champion was also forced to overcome a lengthy rain delay before posting a 6-2 7-6 (1) victory to set up a last-16 encounter with Grigor Dimitrov.
Medvedev had looked set for an early night as he surged into a 4-0 lead and proceeded to take the first set with the minimum of fuss.
But he was given pause for thought as the Serbian broke twice in succession to establish a 4-2 lead in the second set, before Medvedev rallied to victory.
Former world No 3 Dimitrov toppled American 16th seed Reilly Opelka 6-3 6-4 to earn his crack at Russian Medvedev.
Italy’s Jannik Sinner earned a free ride through after American John Isner withdrew from the tournament to attend the birth of his third child.
Lucky loser Beatriz Haddad Maia stunned top seed Karolina Pliskova in straight sets to reach the fourth round.
The Brazilian world No 115 capitalised on Pliskova’s serving troubles amid the blustery conditions to pull out the biggest win of her career 6-3 7-5.
Germany’s 10th seed Angelique Kerber reached the round of 16 at the tournament for the sixth time after defeating Russia’s Daria Kasatkina 6-2 1-6 6-4.