Johnson was born in Bedford, Bedfordshire, and started his career at Luton Town's Academy. Initially his career was held back by the perception that he was too small to prosper as a top level striker. He moved on to Birmingham City, where he signed his first professional contract on 11 March 1998. He missed a deciding penalty in the 2001 League Cup Final penalty shoot-out defeat to Liverpool.
After only a few noteworthy appearances, he was sold to Crystal Palace in 2002, following Birmingham's promotion into the Premier League. Johnson was used as the makeweight in a transfer deal for Clinton Morrison, valued at £750,000 for the purposes of the transaction.
Whilst Johnson's arrival was not greeted with any real excitement at Crystal Palace, the transfer turned out to be an excellent move for both Johnson and Palace. He soon made himself very popular with Palace fans with a hat-trick in the 5–0 demolition of rivals Brighton & Hove Albion on 26 October 2002, and then another, in the next match, at Walsall.
However, manager Trevor Francis continued to play his preferred main strike partnership of Ade Akinbiyi and Dele Adebola, keeping Johnson and Palace legend Dougie Freedman on the left-wing and bench, respectively. When Francis was dismissed, and with the Eagles mid-table, he was replaced by Steve Kember, who decided to partner Freedman with Neil Shipperley, while Johnson was left to play the role of support striker. The new strike partnership initially worked well, with Palace winning their first three matches and topping the table. However, the good start to the season did not continue and, with Palace languishing in 20th place in November, Kember was dropped.
Under the aegis of new manager and coach Iain Dowie, Johnson's all-round game improved. Now partnering Shipperley, Johnson ended the season as top scorer in the 2003–04 First Division season with 32 goals. Palace reached the play-offs and were promoted into the Premier League for 2004–05 after beating West Ham United 1–0 in the final – five months after they had occupied 19th place in the league.
Despite Palace's relegation back into the Championship the following season, Johnson was the highest scoring English player with 21 goals and the second highest overall in the Premier League. Johnson's tally of 21 Premier League goals was the most ever scored by a Crystal Palace player in the top flight and his form attracted the attention of England manager Sven-Göran Eriksson. Although Johnson's detractors noted that 11 of these came from penalties rather than open play (a record for the Premier League), he himself won seven of the penalties.
Palace were relegated at the end of 2004–05 and Johnson requested a transfer prompting much speculation as to which club he might move to. However, on 2 August 2005, Johnson signed a new five-year contract with Palace and pledged to help them regain their place in the top flight. Palace chairman Simon Jordan blamed Johnson's agent Leon Angel for pressurising Johnson into handing in the transfer request.
Johnson was soon playing alongside Clinton Morrison, who had rejoined Palace from Birmingham for a fee of £2 million, three years after Birmingham had bought him in a deal for £4.25m plus Johnson. However, due to injury to Johnson, and Morrison's lack of form, the pairing was limited in the early part of the season. With a return to fitness and form, the two soon became Dowie's first choice pairing as the season progressed, with Dougie Freedman adding experience to the strike force.
Palace comfortably made it into a top-six position but in the play-offs failed to recover from a first leg defeat at the hands of Watford, being beaten on aggregate in the semi-final. Johnson scored 15 goals in the Championship that season.
In 2005, Johnson was voted into Palace's Centenary XI, the only player at the club at the time to be selected, and, together with Nigel Martyn, the only members of the XI then playing on a professional basis.
After Crystal Palace's failure to return to top-flight football, speculation about Johnson's future at the club began with a transfer to a Premier League club seeming highly likely. However, when an initial bid from Everton of £7.25 million was rejected, it looked more likely that the club would be able to keep Johnson for a further year after all. Nevertheless, the departure of manager Iain Dowie only increased the likelihood of Johnson's departure, and on 24 May 2006 Palace accepted an £8.5m million offer from Wigan Athletic for Johnson. This bid was matched by fellow Lancashire club Bolton Wanderers a day later, which was also accepted.
With Johnson having indicated a preference for a move to Merseyside, Everton, prompted by the two other bids, improved their offer to £8.6 million the following day. On 30 May 2006, he passed his medical and completed the move to Goodison Park, signing a five-year contract. Johnson's move set new club transfer records, both as Everton's most expensive purchase and Palace's most expensive sale. He stated that his reason for moving to Everton was the size and stature of the club and the size of the club's fanbase.
Johnson scored his first goal for Everton on his debut on 19 August 2006, in a 2–1 win over Watford. He continued a good start to his Everton career by scoring against Tottenham Hotspur away to end a 21-year victory drought there and then scoring twice in the 3–0 derby victory against Liverpool. Johnson was Everton's top scorer in the 2006–07 FA Premier League with 11 goals (and one in the FA Cup). However, Johnson was allegedly affected by allegations of simulation, going 13 matches without scoring a goal at one stage.
After a league match with Chelsea on 17 December 2006, Chelsea manager José Mourinho branded Johnson "untrustworthy" following a challenge with Chelsea goalkeeper Henrique Hilário. Everton issued a statement threatening legal action and calling on Mourinho to apologise, which he did two days later. Mourinho was not the first to air such sentiments about Johnson; former Sheffield United manager Neil Warnock also having accused Johnson of resorting to "gamesmanship" to win a penalty in a Premier League match between the two clubs.
Everton manager David Moyes took the unusual step of contacting the Professional Game Match Officials Board in order to counter these accusations. The board's general manager Keith Hackett agreed that Johnson was being treated harshly and had been denied several clear penalties.
On 6 November 2007, Johnson signed a new five-year contract with Everton. During the new season, Johnson scored some vital goals for Everton, including a Premier League winner away to West Ham. He scored Everton's first goal in the 2–1 away victory against Wigan Athletic, and was denied a winning goal at Blackburn Rovers, adjudged to have been offside.
Johnson scored twice in Everton's 6–1 thrashing of SK Brann in the UEFA Cup. He scored Everton's second and sixth goal and the last goal was a driven shot from outside the box. Johnson also scored in Everton's Round of 16 tie against Fiorentina. He picked up a groin injury in Everton's match at the Craven Cottage against Fulham.
In July 2008, Everton accepted an offer of "an eight figure sum" from Fulham for Johnson. It was reported that problems had arisen from his medical, prompting a possible renegotiation of the fee, but the move was completed on 7 August 2008, the player signing a four-year contract for an undisclosed fee, thought to be in the region of £10.5 million. He made his debut for the club in a 2–1 win over Bolton Wanderers at Craven Cottage on 13 September 2008. Johnson was sent off against West Ham United on 27 September 2008 for two bookable offences. He scored his first and second Fulham goals against Wigan Athletic on 29 October 2008.
Johnson finished the 2008–09 season with 10 goals helping Fulham to finish in seventh place and qualify for the UEFA Europa League. He made only 13 appearances for Fulham in 2009–10, scoring three goals, as he missed much of the season due to a troublesome knee problem. He also missed most of the early part of the 2010–11 season with injury. He made a good start to the 2011–12 season, scoring a Premier League hat-trick on 2 October in the 6–0 win over West London rivals Queens Park Rangers. Johnson also scored twice in Fulham's 4–1 win over Wisła Kraków on 4 November 2011, putting them on the brink of securing a place in the knockout stages of the UEFA Europa League. These goals were Johnson's seventh and eighth in the UEFA Europa League; he also scored against NSÍ Runavík, Crusaders, RNK Split, Twente and Odense.
Johnson's contract at Fulham expired in June 2012 and he was released after four years at the club.
In June 2012, Johnson signed for Queens Park Rangers on a two-year contract. Johnson made his debut as a substitute in the first match of the season at home against Swansea City. Johnson made his first start away at Manchester City, providing an assist for Bobby Zamora's equalising goal. On 17 September 2012, it was announced that Johnson was likely to miss the majority of the season with a cruciate ligament injury. In August 2013, Johnson scored the winning goal in Queens Park Rangers' opening fixture of the Championship season against Sheffield Wednesday. He was released on 1 July 2014 following the end of his contract.
On 3 September 2014, Johnson signed a short-term contract with Crystal Palace on a free transfer, and was given some coaching responsibility with academy players. He left the club at the start of January 2015 when that contract expired, having made a solitary appearance in the League Cup.
On 30 March 2016, Johnson returned to Crystal Palace as an ambassador. His duties would again involve some coaching responsibility as well as involvement with the community.
Johnson was first capped for England at U20 level, being selected in the team for the 1999 FIFA World Youth Championship alongside Stuart Taylor, Ashley Cole, Peter Crouch and Matthew Etherington. The team finished bottom of their group, losing all three matches without scoring.
As the top English goalscorer in the 2004–05 Premier League, there were many calling for him to be selected for the full national team of England squad. Midway through the season, Johnson revealed that he would accept a call-up to the national team of Poland, after being eligible through his grandfather being born in Poland. This subsequently hurried then England manager Sven-Göran Eriksson into giving Johnson his first call-up, to face the Netherlands on 9 February 2005, and he made his first appearance in that match, replacing Wayne Rooney in the 61st minute.
A second cap came when Johnson made his full debut for England, in a 2–1 friendly win over the United States, during England's tour of America in the summer of 2005. On 9 May 2006, Johnson was put on standby by Eriksson in his squad for the 2006 World Cup in Germany. He was also an unused substitute in the England B match against Belarus and the first team's wins over Hungary and Jamaica.
When Steve McClaren was installed as England coach, Johnson got further opportunities to play for his country in the UEFA Euro 2008 qualifiers. Johnson made substitute appearances against Andorra (at Old Trafford on 2 September 2006) and away to Macedonia (on 6 September 2006). Johnson then made his first competitive start for England in the Euro 2008 qualifier with Israel.
In December 2007, Johnson, along with a host of other players, including Marcus Bent, Gabriel Agbonlahor and Titus Bramble, started celebrating goals by making an 'A' with his hands. It was later revealed that this was in fact the players' way of signalling the start of a new football-based community project scheme – The A-Stars! With the motto "if you dream it, you can achieve it", the idea is to enable young people to use the talents they have for good, in sporting work places. The co-founder of the charity was Queens Park Rangers defender Fitz Hall, who played with Johnson at Palace.
As of 2012, Johnson is also a patron of FFC Football for Cancer.
Birmingham CityFootball League Cup runner-up: 2000–01
Crystal PalaceFootball League First Division play-offs: 2003–04
Premier League Player of the Month: October 2004, September 2006
PFA Team of the Year (Premier League): 2004–05
Crystal Palace Player of the Year: 2003–04, 2004–05