Francis started his career at Mile Oak Rovers, before a big move to Derby County in 1989. He made 17 appearances for Derby, 15 as a substitute, scoring once in the FA Cup.
Stockport County
spotted Francis whilst he was playing a reserve match and immediately wanted to sign him. County paid Derby £45,000 in March 1991. He scored 5 goals as County finished as runner-up in Division Four. The following season, he notched 26 as County made it into two Wembley finals, followed by 33 in 1992–93 season as Stockport made it to the final of the Autoglass Shield. In his final full season he produced another 30 goals as County yet again made it to Wembley, however he was to lose for a fourth time. In 1994–95 he had already scored 13 times before he left Stockport in January 1995, for £800,000, a record at the time for County. He did make a return to County in 2000, but it was short-lived as after just four appearances he broke his leg in a match versus Manchester City. He was released at the end of the season, a sad way to end his glorious County career. Due to his excellent goal-scoring feats he earned the honour of "County Player of the Century" in 2002. Francis appeared back at Edgeley Park on 18 July 2014 as one of 30 Stockport County legends to play in Mike Flynn's testimonial match. Francis was welcomed back like a hero by the Stockport fans and stayed after the game to meet the fans.
In January 1995, Francis was signed for £800,000 by Barry Fry for his hometown club Birmingham City, and enjoyed a successful period, scoring 21 times in 94 appearances. This included the most successful season in his career, picking up a Division Two Champions medal as Birmingham secured promotion back to the 1st Division, and a winners medal in the Football League Trophy Final of the same season. Birmingham beat Carlisle United 1–0 at Wembley to secure a season double, with Francis finally breaking his Wembley duck after previously enduring four successive defeats with Stockport. Francis also played a major part in Birmingham's eventual promotion that season, scoring 8 times in the promotion run-in, including the first goal in a vital 2–0 home victory against second placed Brentford. Francis also played for Birmingham for a further two seasons in the 1st Division, although his time at St Andrews was disrupted by injury. Despite this, he played a major part in Birmingham's run to the League Cup Semi-Finals in the 95–96 season, scoring a brace as Birmingham eliminated Premiership Middlesbrough 2–0 in a 4th Round replay at St Andrews. He also opened the scoring with a 25-yard rocket in the Semi-Final 1st Leg at St Andrews against another Premier League side, Leeds Utd. Unfortunately for Francis and Birmingham, Leeds Utd came back to win the first leg 2-1 before securing a 3–0 victory in the second leg at Elland Road, to progress to the final on a 5-1 aggregate.