Janssen began his career at amateur club Vitesse Arnhem 1892 and played from 1995/1996 in the reserves of SBV Vitesse. After breaking through in several youth teams Janssen made his professional debut on 9 December 1998 in the first team against NAC Breda, which Vitesse won 2–0. Janssen came in as substitute in 90th minute to replace Marian Zeman. Janssen played 5 games that season for Vitesse. The next season Janssen made 17 appearances for Vitesse. In 2000/2001 Janssen had become a starter for Vitesse and made 30 appearances, in which he scored once. In September Janssen broke his shin, he played 10 games total that season, and scored 1 goal.
Janssen played another 16 games in 2004 in which he scored one goal. Janssen played primarily on the wing in the following season. His leg operation was sometimes troubling for Janssen, nevertheless Janssen made 28 appearances in which he scored 8 goals. In the season 2005/2006 Janssen played 30 games for Vitesse and scored 7 goals. Janssen's good performance at Vitesse was not unseen, as he received an invitation for the Dutch national football team for a friendly game against Ecuador on 1 March 2006. However, Janssen could not play, due to surgery on his tonsils. Janssen remained playing for Vitesse in the following season, and was again selected to play for Oranje. This time he was able to play and made his debut for Oranje in a friendly against Ireland. He came in the 83rd minute for Stijn Schaars. On 2 September 2006 Janssen started for Oranje in a European Championship qualifier against Luxembourg. Janssen made only 22 appearances for Vitesse that season, due to injuries and suspensions. Vitesse trainer Aad de Mos told Janssen he could search for another club, despite and existing contract until 2009. During the 2007/2008 season, Janssen once again got injured, this time for a several months. He returned playing in late 2007.
In mid-April 2008 FC Twente contracted Janssen. The transfer fee was approximately worth 1,5 million euros, and was eligible to play for FC Twente in the upcoming season. Janssen signed a contract until 2012. In November 2009 Janssen was suspended by Twente for two months, after a drunk-driving accident. One of his passengers, former professional goalkeeper Kevin Moeliker, ended up in hospital where he was kept in a coma for several days. He lost one of his ears in the accident. Janssen won the Eredivisie that year with FC Twente. In July Janssen was invited by van Marwijk to play a friendly against Ukraine. In season 2010/11 Janssen had his best season so far. He won the Johan Cruijff Schaal and the KNVB cup with FC Twente. Janssen scored 20 goals in 46 appearances, which made him club top scorer. Janssen scored some important goals for Twente like against Internazionale, Werder Bremen, Ajax and PSV. Janssen was voted best player of the Eredivisie of the season 2010/11.
On 23 May 2011 Ajax and Twente agreed on a transfer of Janssen to Ajax. The transfer fee was worth 3,2 millions euros. Janssen signed a contract with Ajax for 2 years. He was handed the number 16 shirt, previously worn by Luis Suárez. His first couple of matches for Ajax were not very successful, as coach Frank de Boer decided that Janssen had to play as a defensive midfielder, which is not Janssen's best position. After he was playing in a more attacking position, Janssen became very important in achieving the league victory in 2012.
Janssen wanted to leave Ajax, after he had heard from Frank de Boer that he would be playing less matches in the coming season. He refused to play a role as substitute. On 27 August 2012, Janssen returned to Vitesse for a fee of approximately 600,000 euro's.