Perkins pitched 11 innings for the Minnesota Twins during spring training, recording one win and one loss with a 5.73 ERA. He did not make the team and was sent down to Triple-A Rochester. With the Rochester Red Wings, he pitched 33.1 innings, recording two wins, one loss, a 2.97 ERA, and 27 strikeouts. On May 7, 2008, Perkins was called up to replace injured teammate Scott Baker. He started his first major league game against the Boston Red Sox on May 10, 2008. He recorded his first major league win in a home start against the Texas Rangers on May 20, 2008.
On May 25, 2008, he pitched arguably his best MLB performance. Starting in a road game against the Detroit Tigers, Perkins recorded the win by pitching 7.2 innings, giving up 7 hits, 1 ER, 2 walks, and striking out 4.
On July 18, 2008, Perkins went six innings combined with three relievers on a three-hit shutout of the Texas Rangers. It was the first time that season that the game's highest-scoring offense had been shut out. Perkins was 5–0 over a six start period and 7–2 with a 3.84 ERA overall.