Shields (14-10) yielded a run in the ninth inning, spoiling his shutout bid, but otherwise handcuffed the Rangers.
The right-hander gave up two walks and fanned seven batters, giving him 1,001 career strikeouts and 199 for the season, fourth-most in the American League.
Evan Longoria socked a solo homer in the first inning to put Tampa Bay ahead for good and Kotchman delivered a two-run single in the fourth to make 3-0.
B.J. Upton also went deep for the Rays.
Scott Feldman (1-1) was tagged for the loss, surrendering four runs on four hits over five innings for the American League West-leading Rangers.
Michael Young got the only RBI for Texas.