Born in Bradford, he played for more than a decade with his hometown club Bradford City until his release in May 2009. He moved to Darlington, where he spent just one season, then dropped into non-League football with Halifax Town. Bower has also had loan spells with York City and Luton Town.
Bower was born in Bradford, West Yorkshire and educated at St Bede's Grammar School, before he signed for Bradford City in August 1997 as a trainee. He signed professional forms on 28 March 1998 and made his first team debut the following month against Norwich City in a 3–2 victory at Carrow Road on 4 April 1998 at the age of 18. He made two more appearances that season but none in the following season. After City won promotion to the Premier League in May 1999, Bower's first team opportunities were restricted. Instead he spent a period on loan at York City in the 1999–2000 season, after he was signed by the club's new manager Terry Dolan, who had previously managed Bradford City. Dolan made a number of other defensive signings including Alan Fettis, Peter Swan and Peter Hawkins, and with Bower they helped to reduce the number of goals York conceded to help them avoid relegation. Bower made 15 appearances, scoring his first senior goal against Lincoln City during his spell.
Bradford had initially refused Bower to return to York for a second loan spell, but he moved back to Bootham Crescent in November 2000 following a series of injuries for the rest of the 2000–01 season. York again struggled at the bottom of the Third Division, but Bower was praised by Dolan following a long unbeaten run, as the team eventually avoided relegation. Bower made just two cup appearances for Bradford City during that time and never appeared in the club's two-year spell in the Premier League.
His career at Bradford seemed to be over. But he returned from York in 2001 and the following season, he earned a call-up due to injuries. He scored his first Bradford goal during a 4–1 First Division victory against Norwich City on 10 November 2001. Having forced his way into the team, Bower signed a new three-year contract in April 2002 to keep him with the club until the end of the 2004–05 season.
In September 2002, he received the first red card of his career in a league game against Burnley. City striker Danny Cadamarteri was also sent off as City fought back from 2–1 down to draw 2–2 despite playing with nine men for 35 minutes. He soon battled at the Bantams to become a first choice centre back alongside David Wetherall. He was an ever-present during seasons 2004–05 and 2006–07 and now played more than 200 games at Valley Parade.
On 13 February 2007, he was named as Bradford captain by Wetherall, while he was caretaker manager. Bower has regularly picked up gongs at City's annual awards and also writes a column in newspaper the Telegraph & Argus. The following season Bower lost his place to Matthew Clarke before being ruled out due to an injury he sustained in a pre-match warm-up at Accrington Stanley on New Year's Day 2008. He returned to action on 8 March 2008, when he came on as a second-half substitute in City's 2–1 at Stockport County. Later that season, he was once again handed the captain's armband in a home game against Morecambe, ten years after he made his debut for the club.
However, Bower was kept out of the team at the start of the 2008–09 season by Graeme Lee and Matthew Clarke. He missed the first four games before he came on as a substitute in a 3–2 defeat to Aldershot Town after Clarke suffered a calf injury. He continued to struggle to break into the first team, and suffered another setback when he injured a thigh in a reserve match.
Having started only one game and restricted to one other league game during the first six months of the 2008–09 season, Bower moved to fellow League Two club Luton Town on a one-month loan deal in January 2009 to cover injuries and suspensions. He made his Luton debut the following day as they drew 1–1 away at Bournemouth, in a game between the league's two bottom sides, both of whom had been deducted points at the start of the season. He played in all six games during the first month of his loan spell which was extended for another month, during which he scored his first goal for Luton to help them defeat fellow relegation-threatened side Grimsby Town 2–1. His loan spell was extended for a second time after becoming a regular in the Luton side. Despite playing 16 games for Luton at centre-back, Bower could not help prevent the inevitable as Luton's 30-point deduction proved too much to overcome, and they were relegated to the Football Conference. As a result, Bower was recalled to Bradford, ending his loan spell, though he was released at the end of the season along with five other senior professionals.
Bower trained with Conference National side Chester City and teamed up with his former manager Colin Todd on trial at Darlington. After playing in a pre-season friendly with Scottish-side Hamilton Academical, which finished 0–0, Bower signed for Darlington along with fellow Bradford defender Paul Arnison. He played one season with Darlington but the club released him following their relegation from League Two, along with 13 other players.
In June 2010, Bower returned to West Yorkshire, to sign for Halifax Town and was named captain. He began the season playing at left-back due to an injury to Danny Lowe before moving into the centre of Town's defence upon Lowe's return. Bower formed a strong partnership with Liam Hogan in the centre of defence as Halifax won the Northern Premier League Premier Division at a canter, finishing 19 points clear of their nearest challengers Colwyn Bay.
In May 2011, Bower signed for Guiseley as vice-captain and made a strong partnership with Danny Ellis after club captain Simon Ainge left to Luton Town. He became caretaker manager on 11 September 2013 after Steve Kittrick was sacked following a poor start to the season. Despite losing his first two matches in charge, he was appointed permanently on 20 September 2013.
In a match against Braintree Town in February 2016, Bower was involved in a controversial incident described as "disgraceful unsporting behaviour." Recognising that a Guiseley player needed treatment, a Braintree player kicked the ball into touch. Fair play protocol dictates that the ball be passed to the Baintree goalkeeper, Tom King, on resumption of play, but Oliver Norburn instead lobbed the ball past King to score an equalising goal. A fracas resulted but the goal was allowed to stand after security staff separated the players and management, and Bower refused to allow Braintree to walk through and score. Bower went on to defend his decision, stating that King "stood there with his arms in the air and allowed the ball to into the net. It put us in a really difficult position whether we should allow them to score or not but we decided no. I think their keeper was trying to be clever and had simply let the ball go in." King responded that he was "bewildered" by Bower's statement, and speaking on the incident itself said that: "It is one of those things that will be remembered for a long time, I'll be remembered for a long time and it will carry on forever". The following week, Guiseley chairman Phil Rogerson released a statement recognising the fair-play convention had not been followed: "... myself, Mark [Bower] and the club find the situation most regrettable and not in line with the general ethos of Guiseley AFC. Fair play is and always has been at the heart of the club. The decision to continue playing as normal after the goal was taken on the spur of the moment and under extreme pressure, not helped at all by the heated atmosphere." On 21 August 2016, Bower parted company with Guiseley, after the team lost their first five matches of 2016–17.
On 22 September 2016, Bower was named manager of National League North side Bradford Park Avenue, replacing previous manager Alex Meechan who had been sacked earlier in the week.As of 21 August 2016