The contract will have a player option for the third season.
The Pacers cleared the cap space needed to re-sign Stuckey after they agreed to tradeRoy Hibbert to the Los Angeles Lakers on Saturday. That move opened up $15.5 million in space, and the Pacers moved quickly to bring back Stuckey, who had offers from several other teams. Before the trade, the Pacers weren't able to make a competitive offer.
"Larry [Bird] wanted him back, but we weren't sure it was going to happen," Zamorano said. "We took a chance because Rodney wanted to wait. Things worked out for everyone."
Stuckey didn't have much of a market last summer after seven seasons with the Detroit Pistons, and the Pacers were able to land him on a minimum contract. He then averaged 12.6 points, 3.5 rebounds and 3.1 assists in 71 games for the Pacers.
The 29-year-old combo guard started 36 games but mostly gave Indiana steady production off the bench and was in the conversation for the Sixth Man of the Year award.
Stuckey was attracted to playing in the Pacers' guard rotation that will include Paul George, George Hill and recently added Monta Ellis, Zamorano said.
The Pacers still have cap space left and now are looking to add a big man to help replace Hibbert, sources said.
ESPN.com's Ian Begley contributed to this report.
Stuckey staying with Pacers
ESPN's Brian Windhorst breaks down Rodney Stuckey agreeing to a three-year, $21 million deal with the Pacers and other moves Indians needs to make this offseason.