Talbot pitched seven strong innings for only his third win in his last 13 starts as Cleveland beat the Detroit Tigers 4-0 in the first game of a doubleheader Wednesday.
"It is one that you can think about during the winter when you are sitting on the couch," Talbot said. "To finish off on a good note was great."
Hafner hit a two-run homer off Max Scherzer (12-10) in the third inning. Choo added a two-run shot in the fifth.
Talbot (10-13) spent two weeks on the disabled list with a strained back in August. The right-hander also missed a turn in the rotation earlier this month with an inflamed right shoulder.
"I felt OK both times I came back, but I just didn't know where the ball was going," Talbot said. "Today, I was locating my fastball and my secondary pitches were sharp."
Jensen Lewis and rookie Vinnie Pestano each pitched a scoreless inning to complete Cleveland's fourth shutout. It was the 10th time this season the Tigers have been shut out and first since Cleveland's Justin Masterson did it against them on Aug. 20.
"We didn't do anything offensively," Tigers manager Jim Leyland said. "Pretty anemic. We played like it was a spring training 'B' game. We had lazy swings at the ball. We played like it was still raining."
The first game was the makeup of Tuesday's game postponed by rain. The second game will conclude Cleveland's home season. It is the second year in a row the Indians finished with a makeup doubleheader. They split two games with the Chicago White Sox a year ago in the final home games managed by Eric Wedge, who was fired along with his entire staff following a 65-97 finish.
Scherzer came in 5-2 with a 1.93 ERA in his previous 11 starts but struggled with his command. The right-hander walked three and gave up four runs and eight hits over five innings.
"His control wasn't sharp," said Leyland, noting that the extra day of rest because of the rainout may have left Scherzer a little too strong. "That's so unlike him. He couldn't throw the ball over the plate."
Scherzer was not happy with his performance and didn't use the layoff as an excuse.
"I don't make excuses for how I pitch," Scherzer said. "I didn't pitch well. I didn't locate."
The Indians loaded the bases with two outs in the first before Scherzer struck out Trevor Crowe.
Choo reached on a one-out bunt single in the third and scored when Hafner lined his 13th homer into the right-field seats. Asdrubal Cabrera walked to open the fifth and Choo lined his 21st homer.
"He has a real deceptive delivery and his fastball really jumps," Hafner said of Scherzer. "He hung a 3-and-2 changeup to me and I hit it pretty good."
Johnny Damon played in his 140th game for Detroit, becoming the fifth player in history to do it in 15 consecutive seasons. He and Willie Mays have done it 15 times; Hank Aaron, Brooks Robinson and Pete Rose 16 times.
The Tigers were without MVP candidate Miguel Cabrera. The slugging first baseman is out for the season with a sprained right ankle, sustained Monday night. He leads the majors with 126 RBIs, is tied for second in the AL with 38 homers and is third in league batting at .328.
Detroit dropped to 1-7 this season at Progressive Field. The Tigers won eight of nine meetings from the Indians in Detroit. ... Indians right-hander Hector Ambriz will have elbow surgery Friday. ... Choo went 3-for-3 and is hitting .555 (5-for-9) in his career against Scherzer. Hafner went 2-for-3 to put his average against the right-hander at .600 (6-for-10). ... Tigers rookie outfielder Austin Jackson went 1-for-4 and has hit safely in 14 of 16 games against Cleveland, batting .394 (28-of-71) with 17 runs. Jackson got his 180th hit, becoming the fourth rookie since 1901 with 100 runs, 180 hits, 30 doubles, 10 triples and 25 stolen bases. Joe Jackson (1911), Juan Samuel (1984) and Hanley Ramirez (2006) also did it. ... Choo got his 14th outfield assist, which leads the majors.