As a schoolboy, Poulsen played alongside Anders Egholm and Nicolai Høgh in the Danish school tournament for Næsbjerg. He played youth football with Esbjerg fB, and got his senior debut under coach Viggo Jensen in September 2001. In the team of new coach Ove Pedersen, Poulsen established himself in the starting line-up. Having played 21 of 33 games in the Danish Superliga 2002-03 season while missing some games due to injury, Poulsen played all games of the Danish Superliga 2003-04 season, scoring seven goals as Esbjerg finished in third place. He played a total 107 games and scored 19 goals in the Superliga, before leaving the club.
In January 2006, Poulsen was sold to Dutch team SC Heerenveen, signing a three-and-a-half-year contract with the club. At Heerenveen, he played alongside fellow Danes Hjalte Bo Nørregaard, Bo Storm, Timmi Johansen, and Ken Ilsø. He suffered an injury in late February 2006, but returned to play seven games in his first half-year with the team. By fall 2006 he was backup to right back Gianni Zuiverloon, and stated he did not like coach Gertjan Verbeek's motivational skills.
He was used as right midfielder in the spring 2007, but could not establish himself in the starting line-up, and played most of his Heerenveen games as a substitute. He established himself in the team in early 2008, but under new coach Trond Sollied his run in the starting line-up came to an end. As Sollied would not include him in more games, Poulsen decided to leave the club.
He moved back to Denmark in August 2008, signing a four-year contract with AGF Aarhus. He rejoined his former coach Ove Pedersen, and looked to restart his career by receiving more regular playing time. He debuted for AGF in August, and established himself as a right-sided midfielder in the starting line-up. He scored his first goal against AaB, which was named September 2008 goal of the month in a TV 2 Sport poll. He was included in the team of the fall season by both TV 2 Sport and TV 3. AGF finished the Danish Superliga 2008-09 season in sixth place. He started the Danish Superliga 2009-10 season well, playing all 18 games, and was named 2009 Danish Superliga Player of the Year. A transfer offer from Serie A side Lazio was accepted by AGF in January 2010, but Poulsen rejected the offer in order not to put his 2010 FIFA World Cup participation in jeopardy. He suffered an ankle injury in February 2010, and only played six games in the spring season, as AGF were relegated to the Danish 1st Division.
Following the FIFA World Cup 2010 in South Africa, English Premier League club, Wigan Athletic, as well as German Bundesliga club, 1. FC Köln, reportedly was interested in Poulsens services. However, on 17 August 2010 it was announced that Poulsen joined the Danish Superliga side FC Midtjylland. At the start of the season, Poulsen suffered an seriously ankle and hadn't play much until making his debut on 22 November 2010, coming on as a substitute, in a 3–2 loss against OB; then scored his first goal on 6 March 2011, in a 2–0 win over Copenhagen, followed up his second with his right foot in a 3–2 win over Randers in a 2–2 draw on 25 May 2011. In his first season, Poulsen scored twice in sixteen appearance. The next season, Poulsen would increasingly used in the first team, with scoring his first goal on the opening game of the season in a 2–1 loss against Silkeborg. This is soon followed up with six more goals later on the season and scored seven goals in thirty appearance, as well making five assists.
Following the Euro 2012 in Poland/Ukraine, it announced that Poulsen had joined Ligue 2 side Monaco for worth around 10 million Danish kroner (£900,000), becoming Claudio Ranieri's second signing. On the opening game of the season, he made his AS Monaco debut in a 4–0 win over Tours, after coming on as a substitute, just ten minutes from full-time. In the second round of Coupe de la Ligue against Niort, Poulsen scored his first goal, which was winning goal. At Monaco, Poulsen since featured in the starting eleven, in various position in midfields and once in defense. However, he lost his place in the first team after the first half of the 2012–13 Ligue 2 campaign and spent the reserve team for the remainder of the season. He failed to regain his first team spot the following season after Monaco were promoted to the top-flight as champions. In January 2014, he returned to Denmark for his former team Midtjylland.
Poulsen got his international debut with the Denmark national under-19 football team in September 2000, and represented the team five times until October 2001. He was a part of the Danish under-20 national team at the Milk Cup in July 2002, and played seven games for the team until June 2004. He debuted for the under-21 national team in November 2003, coming on as a substitute to replace right back Allan Olesen. He also played as a centre midfielder, attacking midfielder, and centre back for the team. He played a total 16 games for the under-21s until January 2006, scoring one goal in the 2006 UEFA European Under-21 Football Championship qualification. He was included in the Danish squad for the 2006 UEFA European Under-21 Football Championship, but did not play any games at the tournament.
After strong performances for AGF, he was called up by national team coach Morten Olsen for the Denmark League XI national football team in January 2009. He impressed in January 2009, and Olsen saw him as a competitor with Lars Jacobsen and Kasper Bøgelund for the right back position, while Poulsen maintained he saw himself as a right midfielder. He was also a part of the League XI in January 2010.
He was called up for the Danish national team in February 2009, and made his senior international debut in a friendly match against Greece, coming on as a substitute for Lars Jacobsen. In the 2010 FIFA World Cup qualification game against Albania in April 2009, he replaced Martin Jørgensen in the midfield, and went on to secure himself a place in the starting line-up, as a central midfielder. In his seventh national team game, Poulsen scored his first international goal in the 1–0 win against Sweden in October 2009, which secured the qualification for Denmark. He was one of five nominees for the 2009 Danish Footballer of the Year award, which eventually went to Nicklas Bendtner. He played a total six qualification games, and was included in Olsen's final squad for the 2010 FIFA World Cup.
In the 2010 FIFA World Cup Poulsen came on as a substitute in Denmarks 2–1 win against Cameroon, as well as the 3–1 loss to Japan in the last group match.Scores and results list Denmark's goal tally first.
Danish Superliga Player of the Year: 2009