Charlton Athletic Hanlan joined the
academy at
Charlton Athletic in November 2012, and signed a two-year contract extension in April 2016. He impressed manager
Russell Slade during pre-season friendly games. He made his first-team debut as an 84th-minute
substitute for
Kevin Foley in a 2–0 defeat to
Bury at
Gigg Lane in a
League One match on 6 August 2016. He went on to feature a total of 15 times for the Addicks in the
2016–17 campaign, whilst also playing for
Jason Euell's U23 side. On 20 January 2017, he joined
National League club
Bromley on a one-month
loan. He scored four goals in eight games for
Neil Smith's Ravens. On 31 August 2017, Hanlan joined
Colchester United on loan until 14 January. Charlton manager
Karl Robinson said it was important for the player's development to find gametime at the
Colchester Community Stadium rather playing "10 minutes here, 15 minutes there" at
The Valley. Hanlan made his
League Two debut as a substitute on 12 September and scored in the 1–1 draw with
Chesterfield. He scored twice in his first three appearances for the U's, though did not find the net in his remaining 17 before he fell out of favour after manager
John McGreal switched to 3–4–3 and 4–3–3 formations. On 1 February, Hanlan rejoined Bromley on loan until the end of the
2017–18 season. He played at
Wembley Stadium in the
2018 FA Trophy final after entering the game as a 68th-minute substitute for
Louis Dennis; the match ended in a 1–1 draw and Hanlan scored in the
penalty shoot-out, which was won 5–4 by
Brackley Town. Upon his return from
Hayes Lane, he was released by Charlton at the end of the
2017–18 season.
Gillingham On 2 June 2018, Hanlan signed for League One club
Gillingham on a two-year deal. He scored the Gills' first goal of the season on his full Gillingham debut in a 2–0 away win against
Accrington Stanley on 4 August. He was named as the club's Young Player of the Season for the
2018–19 campaign after having scored nine goals in 44 games. He scored seven goals in 40 games during the
2019–20 season, which was ended early due to the
COVID-19 pandemic in England. Evans had previously rejected an offer from another club,
Portsmouth, who he said had subsequently "lost interest" in the player. Hanlan had scored 16 goals in 84 games in his two seasons at
Priestfield Stadium.
Bristol Rovers On 10 September 2020, Hanlan joined League One club
Bristol Rovers on a two-year deal for a fee set by a tribunal at £150,000. Manager
Ben Garner said he would provide the "
work ethic and energy we want at the front end of the team" and replace
Jonson Clarke-Harris as the club's number nine, playing alongside
James Daly. Hanlan made his debut two days later in a 1–1 opening day draw away at
Sunderland, before being replaced due to injury in the second half. He scored his first goal for the club on 3 October, opening the scoring in a 2–0 win over
Northampton Town when he converted a
penalty after he was fouled by
Cian Bolger in the penalty area. On 20 October, Hanlan scored his third goal for the Gas, his first from open play, heading in a
Zain Westbrooke free kick to score the only goal of the game in a victory over
Shrewsbury Town. He played 48 appearances in the
2020–21 season, scoring nine goals, In August 2021, Hanlan was subject to a bid from League One side
Lincoln City, which was rejected by Bristol Rovers as the fee offered was less than the sum the club had recently paid following the tribunal's outcome. Manager
Joey Barton spoke of his desire to keep the striker at the
Memorial Stadium; however, he admitted that the Hanlan had had his head turned by the offer and now wanted to leave. Barton later said that Hanlan "couldn't hit a cow's arse with a banjo", but had "left with no hard feelings" after featuring in one League Two game for the Pirates.
Wycombe Wanderers On 26 August 2021, Hanlan returned to League One to join
Wycombe Wanderers for an undisclosed fee reported to be £150,000 plus add-ons and a sell-on clause, signing a three-year deal. On 21 September, Hanlan scored his first goal for the club, Wycombe's only goal in a 6–1 defeat to
Manchester City in the
EFL Cup. After scoring another in an
EFL Trophy defeat to
Milton Keynes Dons, his first league goal for the Chairboys came in a 2–0 win over his former club Gillingham. He played in the
2022 League One play-off final defeat to
Sunderland, having entered the game as a 65th-minute substitute for
Jordan Obita. In total, he scored eight goals in 43 appearances for
Gareth Ainsworth's Chairboys throughout the
2021–22 season. though no move materialised. On 11 November, Hanlan suffered a serious
Anterior cruciate ligament injury after being pulled to the ground by
Stevenage captain
Carl Piergianni, requiring him to be taken off the pitch on a stretcher while wearing an oxygen mask. His contract with Wycombe was extended the following month as manager
Matt Bloomfield saw him as "
a key part of our plans going forward". He returned to light training after nine months. On 10 October 2024, after almost 11 months out injured, he made his return to football, playing the final 20 minutes of a behind-closed-doors friendly with
Queens Park Rangers. He played 13 competitive games upon returning to Wycombe, scoring two goals in cup games. On 31 January, Hanlan joined League One rivals Stevenage on loan for the remainder of the
2024–25 season. Manager
Alex Revell said that he brought the player to
Broadhall Way to easy the burden on Boro's existing centre-forwards. Hanlan scored two goals in 12 starts and four substitute appearances. On 20 May 2025, Wycombe announced he would leave when his contract expired at the end of June. He had scored 16 goals from 111 games in a four-year stay at
Adams Park.
Doncaster Rovers On 13 June 2025, Hanlan signed a two-year deal with newly-promoted League One club
Doncaster Rovers, to start on 1 July. Manager
Grant McCann said "''he's someone who has annoyed me whenever I've come up against him. Brandon brings his energy, his pressing, his aggression''". ==Style of play==