This marks the second trade for Heilman this offseason.
Unhappy as a reliever with the New York Mets for the past few seasons, Heilman was dealt to Seattle in December as part of a three-team, 12-player deal that sent reliever J.J. Putz to the Mets.
"This is a trade that just fit," said Mariners general manager Jack Zduriencik about Wednesday's deal. "I want to thank Aaron for his professionalism. We were excited to acquire him, and sorry to trade him, but I felt this was a deal that we couldn't pass up."
Heilman was hoping to compete for a spot in the Mariners' rotation and could have the same opportunity with the Cubs, who may also use him in his more familiar role as setup man in the seventh and eighth innings.
The Cubs have been trying to finalize their starting rotation and had been in talks with San Diego to acquire right-hander Jake Peavy.
Heilman came up with New York as a starter in 2003. He started 13 games that season and added five starts the following year, but the Mets valued his services more out of the bullpen and he excelled in that role for three years.
From 2005 through 2007 Heilman appeared in 208 games, all but seven as a reliever, and posted a record of 16-15 with a 3.27 earned run average. However, he is most remembered in New York for giving up the home run to St. Louis' Yadier Molina in Game 7 of the 2006 National League Championship Series that sent the Cardinals to the World Series.
The 30-year-old right-hander struggled last season, registering a mark of just 3-8 with a 5.21 ERA in 78 games. He had spent his entire six-year career with New York and owns a lifetime mark of 22-33 with a 4.24 ERA in 305 games.
The Mariners receive a 25-year-old lefty in Olson, who made his big league debut in 2007 with Baltimore and last season started 26 games for the Orioles. The Cubs had acquired Olson earlier this month in a deal that sent outfielder Felix Pie to Baltimore.
Olson had a record of 9-10 with a 6.65 ERA last season after going 1-3 with a 7.79 ERA in seven big league starts in 2007. He has a career minor league record of 12-10 with a 2.96 ERA with 380 strikeouts in 383 2/3 innings.
Cedeno, who turns 26 years old in February, has spent parts of the last four seasons with the Cubs and last year batted .269 in 99 games with two homers and 28 runs batted in. He saw time at five different positions in 2008, playing shortstop and second base most of the time, but also appearing in games at third base and two outfield spots.
"Our number-one goal is to continue to accumulate talent in our organization while doing everything we can to compete in 2009," Zduriencik added. "Today's trade allows us to acquire a young, left-handed starting pitcher with major league experience that we will still control for five seasons. At the same time, by adding Cedeno we have a player who is very versatile and gives us protection and depth, and can compete for a job at second base and shortstop immediately."
Cedeno owns a career average of .252 in 329 major league games.