Angry Daniil Medvedev battles back to reach Shanghai last 16
Medvedev broke early in the first set but 36th-ranked Arnaldi kept his cool to break back in the sixth game on an unforced error from the Russian.
Arnaldi broke again in the 12th game after Medvedev hit long.
The Russian's mood darkened under pressure from Arnaldi in the second set and he was slapped with two code violations and a point penalty after arguing with the umpire.
The former world number one recovered to take the match to a deciding set and came through after 2hr 44min.
"I was expecting him to play differently, he played very good," Medvedev said of Arnaldi.
"To be honest in the first set I should have done better. The second and third were even closer... but at the end I'm happy to win."
Play was only possible under the roof of the main court as rain forced matches on the outside courts to be postponed for the second day in a row.