DETROIT -- When Alan Trammell comes to the mound, it usually means a pitching change.
Trammell broke his habit Saturday when he visited starter Jason Johnson with two outs in the eighth. Detroit led by two runs, but a double by Matt Stairs had brought the tying run to the plate.
Trammell talked to Johnson, then headed back to the dugout. Terrence Long grounded out to end the inning, and the Tigers held on to beat the Kansas City Royals 5-3.
"I wanted to look in his eyes," Trammell said. "He was cruising, and if they had gotten another runner on, he would have come out, but I got the reaction I wanted."
Johnson (6-7) allowed three runs and seven hits in eight innings for his first win since June 18, a span of four starts.
"It feels good, because they pay me to win games," he said. "I really respected Tram for letting me stay out there."
Johnson is 4-1 with a 1.95 ERA in 10 home starts this year.
"I want to do this as much as I can," he said. "If we keep battling, we can still contend."
The Tigers have won seven of nine since being swept by Cleveland in a July 4 doubleheader.
"That wasn't a very good day," Trammell said. "But I think these guys -- our players -- have really gotten it together, and they are playing good baseball."
With the game tied at 3 in the sixth, Nook Logan, considered one of baseball's fastest players, led off with a single off Mike Wood (3-4). He scored from first when right fielder Terrence Long allowed Brandon Inge's single to get past him for the third of four Royals errors in the game.
"We just didn't do anything," Royals manager Buddy Bell said. "We didn't pitch well, we didn't catch the ball and we didn't hit well."
After a flyout, Chris Shelton singled and Magglio Ordonez walked to load the bases. Rondell White made it 5-3 by beating out a possible double-play grounder.
Kyle Farnsworth struck out the side in the ninth for his third save.
Rookie J.P. Howell's winless streak extended to six starts, as he allowed three runs -- two earned -- in 4 1/3 innings.
"This is something to go on," he said. "Something I can build on, hopefully."
David DeJesus led off the game with his sixth homer, and the Royals kept the Tigers from tying it in the bottom of the first with a nice defensive play. Ivan Rodriguez hit a ball with the bases loaded and two outs that deflected off third baseman Mark Teahen to shortstop Angel Berroa, who threw to second to force White.
Alberto Castillo's RBI single made it 2-0 in the second before Detroit began to capitalize on Kansas City's defensive mistakes.
Consecutive errors by Teahen and Berroa put two men on, and both runners moved up on Logan's sacrifice bunt. Inge then lifted a ball down the right field line for a sacrifice fly.
In the fourth, Inge's two-run double put the Tigers ahead 3-2.
"I feel like I haven't done anything for a month," said Inge, whose three RBI matched a season high. "It didn't feel any differently today, but that's the funny thing about baseball. For a month, I've hit the ball right at people. Today, everything dropped in."
Mike Sweeney's homer to left tied it in the fifth.
The Tigers had runners at second and third with one out in the fifth, but Wood came out of the bullpen to strike out Rodriguez. After an intentional walk loaded the bases, he fanned Kevin Hooper to end the inning.
Hooper, who had played in three games as a late-inning replacement, was making the first start of his major league career. ... Placido Polanco (hamstring) and Dmitri Young (calf) both sat out the game. ... Kansas City hadn't made four errors in a game since last Aug. 8 against Anaheim. ... Wood is 0-3 against Detroit lifetime.