Fearnley had to serve to stay in the match when play began and, despite a double fault, did well to keep Dimitrov at bay.
World number 16 Dimitrov had a second match point at 6-5 on the Fearnley serve but the Scot saved it to eventually force a tie-break.
Dimitrov promptly took control of the breaker and won the last five points in a row to set up a meeting with either Britain's Cameron Norrie or Canada's Gabriel Diallo.
Earlier, defending champion Swiatek won her ninth successive match in Madrid with a 6-0 6-7 (3-7) 6-4 victory over Russia's Shnaider.
Poland's Swiatek was not at her best, committing over 50 unforced errors, but she saved 11 of the 13 break points she faced to get the edge over Shnaider.
She will face Madison Keys - who beat her in the Australian Open semi-finals on her way to a maiden Grand Slam title - next after the American's 6-2 6-3 victory over Donna Vekic of Croatia.
Top-ranked Belarusian Aryna Sabalenka, British number one Jack Draper and Daniil Medvedev, of Russia, are all set to be in action later on Tuesday.