CHICAGO -- The Indians felt it was just a matter of time before they put some runs on the board.
Santana hit his fourth home run of the season, a three-run shot in the fifth inning that landed well behind the Indians' bullpen in right field. Hafner added a two-run shot in the ninth.
"It was great game to win after we felt like we had plenty of opportunities early in the game," Indians manager Manny Acta said. "It's a funny game."
|More on Indians-White Sox|
|More MLB Coverage|
Jack Hannahan doubled home Michael Brantley with the go-ahead run in the eighth off Addison Reed.
White Sox starter Phil Humber, pitching less than 24 hours after his wife gave birth to their first child, held Cleveland to three runs in six innings, making key pitches to escape a couple of jams.
He was wild all night, walking a career-high six and hitting another.
"I didn't feel great," Humber said. "I didn't have great stuff. I'm not going to blame it on lack of sleep or anything like that. Having a new baby is a blessing."
Johnny Damon went 0 for 3 with a walk in his Indians' debut, starting in left field and leading off. The 38-year-old Damon is with his seventh organization in 18 big league seasons, and is 277 hits shy of 3,000.
Damon was replaced in the sixth inning because of what the team called "general cramping" but is expected to be available for Thursday's series finale.
Four Cleveland relievers combined for three scoreless innings in relief of Josh Tomlin, extending the bullpen's shutout streak to 15 2/3 innings. Joe Smith (1-0) picked up the victory and Chris Perez pitched the ninth for his eighth save in nine chances.
"Once you come out of a game like that, you know that [the bullpen is] going to be lights out, no matter what," Tomlin said. "If we can give the ball to them with the lead or a tie ballgame in the seventh or eighth inning, we feel pretty good about our chances."
Adam Dunn reached base three times and hit his sixth home run for Chicago. Alexei Ramirez added a two-run single.
Will Ohman (0-1) took the loss in relief.
After throwing the 21st perfect game in big-league history at Seattle on April 21, Humber allowed a career-high nine runs in five innings against Boston on April 26.
"It's a whirlwind couple weeks for him," White Sox manager Robin Ventura said. "I guess that's what it is, more than him not being a good pitcher. It kinda comes with playing, a lot of outside stuff comes into it. He still pitched well enough to get us through, we had a shot at it."
Tomlin held Chicago to three runs in six innings, pitching beyond the fifth for only the second time in five starts. Tomlin's start against Humber the first time the close friends have faced each other.
"It was fun," Tomlin said. "It was a good experience to go out there and pitch against him. I had a good time doing it."
With Brantley on first in the eighth, Ohman appeared to escape the inning when Casey Kotchman hit a grounder at Dunn, but the ball was ruled foul by first base umpire Eric Cooper. Kotchman then walked and Hannahan stroked a ball up the left-field line.
"That's the name of the game," Hannahan said. "You've got to get guys on, then you've got to get the big hits and put runs on the board for this good pitching staff."
Humber worked out of a pair of early jams despite walking five and hitting another during his first five innings. He struck out Shin-Soo Choo with the bases loaded to end the first and third innings.
Choo returned to the lineup after sitting out since April 24 with a groin injury. ... White Sox manager Robin Ventura said that Dylan Axelrod is likely start one game of Chicago's doubleheader at Cleveland on Monday unless he is used in a long relief outing before then.