The 32-year-old Swedish international returns to the Premier League after having enjoyed a three-year spell with Bolton Wanderers.
Elmander left Bolton for Turkey in 2011 on a free transfer after his contract at the Reebok Stadium expired.
Norwich manager Chris Hughton told the club website: "I'm really delighted to bring in a player of Johan's experience, not only at club and Premier League level but as a current international. It's great to welcome him to our squad."
Elmander scored 18 goals in 92 Premier League appearances for Bolton and has netted 19 goals in 71 appearances for Sweden.
He will become the third striker to join Norwich City this summer after the captures of Ricky van Wolfswinkel and Gary Hooper. The club also signed Luciano Becchio from Leeds United in the January transfer window.