Shields (9-7) became the first player in Tampa Bay team history to fan 10 or more in three consecutive starts.
Shields allowed just three hits and did not walk a batter, and the Rays collected their third win in four games.
B.J. Upton had two hits and two RBI to lead the Tampa Bay offense. The Rays scored two runs in the third inning and added three more in the sixth.
Jemile Weeks, Chris Carter and George Kottaras each had a hit for Oakland, which still finished July with a 19-5 record.
Tom Milone (9-8) took the loss, allowing five runs on seven hits over six innings.