Logan's 11th-inning triple put the Tigers ahead and Franklyn German saved the 3-2 victory, two innings after closer Troy Percival failed to preserve a one-run lead in the ninth against the Chicago White Sox.
"It's a lot easier when you win these. It's very unusual," Tigers manager Alan Trammell said after the 4 hour, 10-minute game that featured 17 walks -- 11 by Detroit -- and 27 runners left on base.
"Logan had had some big hits the last 10 games and he has given this team a big spark," Trammell said.
Logan connected against a fastball from the side-arming Takatsu, whose changeups are sometimes clocked in the 60-mph range.
"You can never tell when it comes out of his hand," Logan said. "I got one about thigh high and put a good swing on it."
Jamie Walker (1-0) got the win with a scoreless 10th, and German got three outs for his first save.
The White Sox have lost three in a row after opening the season 16-4.
"We can't continue to think we're going to pitch and win 1-0 every day. We've got to score some runs," White Sox manager Ozzie Guillen said.
Chicago stranded 16 runners and squandered numerous scoring opportunities, failing to take advantage of Detroit's wildness.
"We haven't had any one get the big hit. When a couple of guys got on, they'd make a good pitch and get out of it," Chicago catcher A.J. Pierzynski said.
The Tigers took a 2-1 lead into the bottom of the ninth but a wild Percival blew the save.
The White Sox had a chance to win it when pinch-runner Pablo Ozuna moved to third on the Rowand's fly. But after pinch-hitter Timo Perez struck out, Pierzynski was walked intentionally to reload the bases before Percival got Joe Crede to foul out.
Ivan Rodriguez's two-out RBI double gave the Tigers a 2-1 lead in the seventh.
Contreras, forced to leave his previous start after 3 1/3 innings with a sore right hamstring, labored through six innings, walking three, hitting a batter and throwing 113 pitches. He gave up a run on three hits with six strikeouts in his fifth straight no-decision this season.
Chicago took a 1-0 lead in the bottom of the fifth with an unearned run when Everett worked out of an 0-2 hole and drew a bases-loaded walk on a 3-2 pitch from Detroit starter Nate Robertson.
Pierzynski led off with a single, and after the next two batters were retired Detroit second baseman Omar Infante fumbled Scott Podsednik's grounder for an error before Iguchi walked to load the bases.
Robertson, pitching for the first time in 10 days because of a weather postponement, allowed four hits and an unearned run in six innings and also walked seven.
"You could say effective wildness," Robertson said. "It's just another aspect of the game that makes it beautiful. You go out there and walk seven guys and you give up a run and have a chance to win a game. That's what we're trying to do, win games."
Robertson got in trouble again in the sixth but pitched out of another bases-loaded jam by getting Podsednik on a grounder to first.
The White Sox threatened in the seventh when Iguchi singled off Kyle Farnsworth and raced to third when Rodriguez threw high and wide to second on a stolen base. Farnsworth then fanned Konerko; after Rowand walked, he snared Jermaine Dye's hard comebacker and threw him out.
Frank Thomas, recovering from ankle surgery, took batting practice Friday and plans to try running Saturday. Thomas has also undergone shock wave therapy to relieve the pain. ... Ramon Martinez rejoined the Tigers after a three-game rehab stint with Triple-A Toledo in which he had six hits in a game Tuesday night. He'd been on the 15-day DL with a sprained left thumb. ... Game-time temperature was 47 degrees and the announced crowd was 18,313. ...Brandon Inge's 13-game hitting streak ended. He was 0-for-5.