Cabrera went 3 for 4 with a go-ahead double in the fifth inning to back Porcello and lift the Tigers over the Rangers 2-1 Friday night in a matchup of division leaders.
Texas had scored 51 runs in its past eight games, going 7-1 in that stretch. Porcello and four relievers, however, cooled off a Rangers offense that knocked out ace Justin Verlander in the third inning Thursday night.
Cabrera broke a scoreless tie with an RBI double off the wall in left that scored Andy Dirks. Cabrera scored later in the fifth to provide the Tigers with just enough offense to give manager Jim Leyland his 1,699th career victory.
"We had some opportunities and we were able to score just enough runs to beat them today," Detroit catcher Alex Avila said. "And on the flip side, our guys were able to keep it at a minimum when they had opportunities. We were able to get out of big jams."
Porcello (2-2) allowed one run and five hits in 5 2-3 innings with six strikeouts and a walk as the Tigers rebounded from a 10-4 loss Thursday night.
The 24-year-old Porcello is 2-0 with a 3.24 ERA in four starts since giving up nine runs in two-thirds of an inning April 20 against the Los Angeles Angels.
Detroit remained tied with the Cleveland Indians atop the AL Central.
"I think I'm in a little bit of a groove for sure," Porcello said.
Joaquin Benoit escaped a first-and-third jam with one out in the eighth when he induced Nelson Cruz's double-play grounder. Cruz also bounced into a double play in the fourth when the Rangers had runners on first and second with nobody out.
The Rangers, owners of the best record in the AL, went 0 for 8 with runners in scoring position.
"You want to be up in those situations," Cruz said. "I just hope to get another chance so I come through."
Jose Valverde got three groundouts around a one-out walk to Geovany Soto in the ninth, getting his fourth save in five chances this season.
"You don't expect a 2-1 ballgame in this ballpark too many times," Leyland said. "It's a lightning rod and you can hit it out of here at any time."
Soto homered for a second straight game, a solo shot off Porcello in the fifth that brought the Rangers within 2-1.
Rookie Nick Tepesch (3-4) gave up two runs, six hits and three walks in five innings as Detroit stopped the Rangers' three-game winning streak.
"Detroit has a pretty good lineup," Tepesch said. "I just have to take the positives from this start and be ready for the next one."
Dirks led off the fifth with a bloop single to center and advanced to second on a groundout.
Cabrera, hitting .509 (27 for 53) with runners in scoring position, lined an 0-1 pitch off the wall in left field near the out of town scoreboard for his AL-leading 42nd RBI. Cabrera scored on Avila's sacrifice fly.
Cabrera nearly put Detroit ahead in the third when he singled to center with Dirks on second base. Leonys Martin made a perfect throw to Soto at the plate for the out.
NOTES: Texas RHP Alexi Ogando, placed on the DL Thursday with right biceps tendinitis, underwent an MRI that showed no structural damage. ... Texas 2B Ian Kinsler did not start because of bruised ribs after he was hit by a Verlander pitch Thursday night. Kinsler entered in the ninth as pinch runner. ... Detroit's Torii Hunter is two home runs shy of 300 in his career. ... Rangers RHP Justin Miller (right elbow surgery) was scheduled to begin a rehab assignment Friday night at Double-A Frisco.