WATCH the ATP Tour LIVE on beIN SPORTS | available via Foxtel, Kayo Sports, Fetch TV & beIN SPORTS CONNECT
Sinner lost to Karatsev in Dubai earlier this year but recovered from a dreadful start to win 0-6 6-3 6-4 in two hours and 32 minutes.
There were seven breaks of serve in a thrilling encounter between two players bidding for an ATP Finals spot as Karatsev – who has beaten Novak Djokovic and Daniil Medvedev this year – was ultimately defeated.
"It was tough," said Sinner. "He is a great player, especially this year with some big results.
"I dug deep and I am happy to have won. It is definitely good to have the support of the crowd in order to come back from Aslan's fast start."
Lorenzo Musetti followed up his impressive opening round win over Felix Auger Aliassime by defeating Sebastian Korda on Wednesday.
But it was a bad day for fourth seed Goffin as he suffered a 7-6 (7-4) 6-3 loss to Aljaz Bedene, who will now take on Musetti.
Karen Khachanov saw off Kamil Majchrzak in straight sets and he will play the winner of Diego Schwartzman v Richard Gasquet, a match which has been rescheduled for Thursday due to rain.
At the Geneva Open, third seed Casper Ruud won 7-5 6-2 against Tennys Sandgren.
Rising star Ruud – who only gave up one break point – has now reached six consecutive quarter-finals on the ATP Tour and will face Dominik Koepfer in the last eight.
Fourth seed Grigor Dimitrov was a 6-4 6-4 winner over Ilya Ivashka, while second seed Denis Shapovalov is scheduled to play Marco Cecchinato in the last match of the day.