Johnny Oduya’s first club was Hammarby IF, where he played as a junior. In 2000, at the age of 19, he moved to North America to play in the Quebec Major Junior Hockey League. He spent one season in North America, splitting time between Victoriaville Tigres and Moncton Wildcats.
After moving back to Sweden, he signed a contract with Djurgårdens IF in the Swedish Elitserien. During the two seasons he spent with the team, he was known as an aggressive defenceman and a tough guy. At times he fought with opposition players and received loads of penalty minutes. However, he was also a very dependable player and played regularly in the Swedish national team during the Euro Hockey Tour. He was drafted into the Washington Capitals in 2001 as a seventh round pick.
In the 2005–06 season, after he had been dismissed by the Washington Capitals, he moved to another Swedish team, Frölunda HC. In Frölunda, he played as a more offensive defenceman, scoring eight goals and eleven assists.
The following season, Oduya signed with the New Jersey Devils in the NHL. Many expected him to be a minor league player, who potentially would get a brief stint or two in the NHL. When several of the Devils’ defenders were injured, Oduya got a spot in the lineup. He played surprisingly well in the NHL, sometimes playing around twenty minutes a game. He played in virtually every Devils game that season, except for a few that he missed due to a mid-season injury. However, in the playoffs, he wasn’t even at the bench when the Devils were defeated in the second round. Him being benched was mostly due to Andy Greene, who stepped right into the lineup out of college.
During the 2007–2008 season, Oduya became a mainstay on the Devils’ blueline. Oduya was named to the 2010 Winter Olympics as a member of the Swedish men’s ice hockey team.
On February 4, 2010, Oduya was traded to the Atlanta Thrashers along with Niclas Bergfors, Patrice Cormier and a 1st round draft pick in the 2010 NHL Entry Draft for Ilya Kovalchuk and Anssi Salmela.