DETROIT (AP) -- Jordan Zimmermann knew two things when he took the mound against Bartolo Colon on Friday night.
He was going to have to be good to keep Colon from making history, and the game wasn't going to take long.
Zimmermann came through, outdueling Colon as the Detroit Tigers beat the Texas Rangers 3-1 in a game that ended four minutes after sunset at Comerica Park.
"I've hooked up with Bartolo a lot of times over the years, and he's always good and the games are always short," said Zimmermann, who struck out 11 batters in eight innings. "He works fast, I work fast and we almost got out before 9 o'clock tonight."
Colon was trying to become the winningest Latin-American pitcher in major league history. He remains tied with Dennis Martinez with 245 career victories.
He pitched well, allowing three runs - including homers by James McCann and JaCoby Jones - in an eight-inning complete game, but Zimmermann (4-0) was better.
"When I was young, a loss like this would bother me," Colon (5-6) said through a translator. "Now, I know games like this are going to happen. Tonight was good for us and not good for the hitters."
The Tigers right-hander allowed one run and four hits and struck out 10 or more for the first time since his no-hitter for Washington against Florida on Sept. 28, 2014.
"That might be the best slider I've had in my career, and when I can throw it like that, it makes my fastball and curve even tougher to hit," Zimmermann said. "I'm not going to give up many runs with that kind of stuff."
There were no walks in the game, and neither starter needed 100 pitches for their eight-inning outings. Zimmermann threw 96 pitches, and Colon 97.
"Those were two great veteran pitchers doing what they do best," Tigers manager Ron Gardenhire said. "They were attacking the zone, moving the ball all over the place and making the hitters chase their pitches."
Joe Jimenez pitched the ninth for his third save, helping the Tigers end a three-game losing streak by winning for just the third time in 17 games.
At 45 years, 43 days old, Colon became the oldest pitcher to throw a complete game since Jamie Moyer (47 years, 199 days) on June 5, 2010. Tim Wakefield and Randy Johnson are the only other 45-year-olds to pitch complete games in the 21st century.
"That's a tough loss for Bartolo, but both pitchers were great out there," Rangers manager Jeff Banister said. "Zimmermann had his A-game going, and Bart was getting a lot of weak contact."
Colon first faced Detroit on May 10, 1997, allowing one earned run in six innings for Cleveland in a loss at Tiger Stadium. He's the last active major league player to have played at Tiger Stadium, which closed in 1999.
"That old man took me to school," Nicholas Castellanos said. "He was moving the ball over the place and I didn't know what was happening."
The Rangers took the lead on the game's second pitch as Shin-Soo Choo hit a homer into the shrubbery beyond the center-field fence. The home run extended his on-base streak to 45 games, the longest in the majors this season.
McCann put the Tigers ahead with a two-run homer in the second inning, but Zimmermann and Colon took over after that.
The Tigers had the next significant threat, putting runners on the corners with two out in the fifth, but Jones grounded out to end the inning. Jones, though, homered off Colon in the eighth to make it 3-1.
Rangers: Choo returned to the lineup after sitting out Thursday. Choo is limited to playing designated hitter because of a sore quadriceps, and Adrian Beltre started there Thursday after an emergency dental procedure.
Tigers: Closer Shane Greene had tests on his sore pitching shoulder, and they showed no significant problem. Greene is eligible to come off the disabled list on July 12.
The game ended at 9:15 p.m., forcing the postgame fireworks show to be held well before the sky was dark.
The teams continue their four-game series on Saturday, with Cole Hamels (4-7, 4.05) pitching for Texas against Detroit's Mike Fiers (5-5, 3.79).