Martin was spotted at the age of 10 by Brighton & Hove Albion before moving to South East London based Slade Green and then Dartford. Martin's time at Dartford proved productive, scoring 14 goals in 68 appearances and attracting the attention of Championship club Crystal Palace, who he joined for £25,000 in January 2007. Martin made his debut for Crystal Palace as a substitute in a 1–0 win over Southend United at Roots Hall in February 2007, but only spent a year at Selhurst Park, where a thigh strain and managerial changes meant he was restricted to just 14 appearances—primarily as substitute—before making the switch to Millwall for an initial fee of £50,000, rising to £100,000 depending on appearances.
Millwall
Martin made his Millwall debut in the 2–0 defeat away to Nottingham Forest on 9 February 2008, before scoring a goal in each of his next two games: a 2–1 victory over Southend United and a 3–0 win over Port Vale and finishing the season with 11 appearances and two goals. Martin's first full season at Millwall saw him become a fixture of Kenny Jackett's first team, missing only three games as Millwall reached the League One Playoff Final at Wembley Stadium, where they lost 3–2 to Scunthorpe United. His form attracted interest from Championship side Cardiff City, but Martin remained at Millwall for the 2009–10 season and played 21 times in the league, scoring three goals. As he was entering the final year of his contract, Millwall offered Martin a new deal, which was rejected, prompting Jackett to state "We haven't been able to get Dave to sign a new contract this year, so unfortunately halfway through the season we have to take what we can because we would lose him for nothing in the summer. From our point of view there is an offer of a contract on the table for the player. It obviously hasn't been accepted and he isn't going to sign it, so the next thing is after that if there is a bid then reluctantly we will take it." An offer from Championship side Derby County, who he had impressed when playing against in both ties of the clubs FA Cup Third Round meeting, followed, with Derby boss Nigel Clough attempting to sign Martin in a £150,000 deal at the end of the January transfer window. Although the deal fell through, Clough intimated a desire to make a fresh approach for Martin with the reopening of the emergency loan window on 9 February.
Derby County
Martin signed for Derby on loan until the end of the 2009–10 season on 9 February 2010, with a view to a permanent move on expiration of his Millwall contract. He went straight into the squad for Derby's league game against Newcastle United and came on as a late sub in their 3–0 win. Martin made one start and a further eight substitute appearances before the close of the season and Clough confirmed in an interview after a defeat at Bristol City that Martin would sign for the club permanently in the summer. He scored his first goal for the club on the final day of the season with the second goal in a 2–0 win over Cardiff City and formally completed his move to The Rams on 1 June 2010, signing a two-year deal. However, Martin failed to break into the Derby first team and after just two substitute appearances in his first six months he moved to League One side Notts County on a month's loan. His loan spell, however was cut short due to an abductor strain injury. He played three times for Notts, twice in the league and once in the FA Cup. He rejoined Notts on a two-month loan on 24 February 2011. Martin returned to Derby on 24 April 2011, after making 11 appearances for Notts. On 13 September 2011, Martin joined League One side Walsall on a one-month loan. He made five appearances for The Saddlers, which included a red card in his last game against Preston North End.
Southend United
On 4 January 2012, Martin was sold to Southend United for an undisclosed fee, signing an 18-month contract. His contract was terminated on 25 January 2013, after he struggled to get into the Southend first-team during the 2012–13 season. He left having made 35 appearances and scoring four goals in the process.
Following his release from Southend, Martin trained with Conference Premier side Luton Town. After impressing manager Paul Buckle he signed an 18-month contract with the club on 29 January 2013. Buckle left the club shortly afterwards, but his replacement John Still continued to utilise Martin in the squad. Martin signed a one-year contract extension until May 2015 following strong performances towards the end of the 2012–13 season. Injuries and poor form at the beginning of the 2013–14 season led to Martin falling out of first-team contention at Luton. On 18 November 2013, he signed for fellow Conference Premier side Dartford on loan, where he made nine league appearances. Martin was placed on the transfer list by Luton at the end of the campaign. Martin joined Conference Premier side Bristol Rovers on a five-month loan in August 2014. Following his release by Stevenage he signed for National League South side Whitehawk in July 2015 and then joined Bromley for the 2016–17 season. Martin re-joined Whitehawk for the start of the 2019–20 season.