With the Twins trailing 2-0, Eduardo Escobar broke up the no-hitter with a one-out single in the seventh. Eddie Rosario then followed with a single to drive in Brian Dozier, who led off the inning with a walk.
Shields, who retired the first 16 batters, got the next batter Robbie Grossman on a fly to center for the second out (with Escobar advancing to third) before being lifted after 91 pitches.
Left-hander Luis Avilan was brought in to face lefty Logan Morrison, but the strategy backfired as Morrison dropped a soft liner just inside the right-field foul line for a two-run double to give the Twins a 3-2 lead.
Shields allowed three runs and two hits in 6 2/3 innings.
The 6 1/3 innings of no-hit ball was the longest for a White Sox pitcher since Jose Quintana (also 6 1/3 innings) on May 21, 2013.
Rosario homered and drove in two runs as Minnesota won its third straight.
Leury Garcia and Matt Davidson each had an RBI for Chicago, who has dropped seven of eight.
Davidson’s sac fly in the bottom of the seventh tied the game at 3.
In his previous start Tuesday at St. Louis, Shields allowed one run and two hits in six innings. He allowed a lead-off homer to Tommy Pham and then retired 15 straight. Shields left with Chicago leading 2-1, but received a no-decision after the bullpen surrendered two runs in a 3-2 loss.
Minnesota regained the lead on Sunday on an RBI groundout by Max Kepler in the eighth and Rosario added a solo homer in the ninth.
Zach Duke (2-1) got the win with Fernando Rodney pitching the ninth for his fifth save.
Bruce Rondon (1-2) took the loss.
Twins: CF Byron Buxton (fractured left big toe) took batting practice Saturday and Sunday. He ran on Friday and is expected to run again on Monday.
White Sox: There is still no timetable for the return of RF Avisail Garcia (right hamstring strain), who was placed on the 10-day DL April 24. “Avi took some swings (Saturday) and (Sunday),” manager Rick Renteria said. “We still have to put him on a regimen where we can start doing some more explosive work with him.”
Twins: RHP Fernando Romero (1-0, 0.00 ERA) pitches the opener of a two-game series at St. Louis on Monday night after winning his major-league debut last week. RHP John Gant (1-0, 0.00) goes for the Cardinals.
White Sox: Following a day off, RHP Lucas Giolito (1-4, 7.03 ERA) opens a two-game series against Pittsburgh on Tuesday night. RHP Ivan Nova (2-2, 4.01) is the scheduled starter for the Pirates.