Steve Holmes started his career as a YTS trainee with Lincoln City in the summer of 1987. In his second year as a trainee he made the first team squad, being an unused substitute in the 2–2 home Football League draw with Scarborough on 15 October 1988 before playing a full ninety minutes in the 3–1 home victory over Enfield four days later which secured the Imps the James Thompson Championship Shield, an annual contest between the winners of the Football Conference and FA Trophy. He was an unused substitute in the next two league games before spending the latter half of the season on loan to Boston, helping the club secure the Central Midlands League Supreme Division championship. Holmes turned professional with the Sincil Bank based club in the summer of 1989 and commenced the season on loan with Boston. Failing to make an impression with the first team he moved on to join Gainsborough Trinity and then Guisborough Town.
His performances for Guisborough Town attracted attention and, on 14 March 1994, John Beck paid £10,000 to secure his services for Preston North End. On 31 March 1994 he joined Bromsgrove Rovers on loan for a month, debuting in the 1-0 Football Conference home defeat to Slough Town on 2 April 1994. His Football League debut came on 29 October 1994 in a 1–0 home defeat to Exeter City. On 10 March 1995 he joined Hartlepool United on loan, debuting in the following day's 3–1 home victory over Colchester United. He marked his final appearance for the club by scoring twice, his first Football League goals, in a 4–0 home victory over Hereford United on 22 April 1995. One week later he faced Hartlepool United in Preston's colours and marked the occasion with his first Preston goal in a 3–0 home victory.
Lincoln City
In October 1995, Beck was appointed manager of Lincoln City and he immediately returned to his former club, Preston North End, to sign Barry Richardson for £20,000 and secure Holmes on a three-month loan deal on 20 October 1995. The pair made their debut in the 1–0 home defeat to Cardiff City the following day. In this, his second spell at Sincil Bank, he held down a starting position throughout his loan period before returning to Deepdale. Although he managed to break back into the Preston first team, the signing of Paul Sparrow meant that he was able to sign for Lincoln City on a permanent basis for a fee of £30,000 on 15 March 1996; his second debut coming in the 2–0 defeat at Leyton Orient the following day. Ever-present in the 1997/98 season when the Imps won promotion and player of the season the next, Holmes' career was almost ended when he picked up a serious neck injury during the 1–0 home victory over Wrexham on 4 May 1999. The injury kept him out of action for ten months but he returned in spectacular style, scoring less than a minute into his comeback at the Imps defeated Carlisle United 5–0 at Sincil Bank on 4 March 2000. Holmes appeared in City's remaining games of the 1999–2000 season and on 20 November 2001 he became only the 30th player since the Second World War to record 200 Football League appearances for the Imps when he put in a man of the match performance in the 1–0 home defeat to Kidderminster Harriers. In Lincoln City's penalty shoot-out success in an FA Cup first round replay against Bury at Gigg Lane on 27 November 2001, Holmes hobbled off just before the half-hour mark following an accidental collision with Bury's Jason Jarrett and was immediately replaced by Paul Mayo. A strained medial ligament was diagnosed and the injury was expected to keep him on the sidelines for up to two months. However, the injury became infected, causing Holmes to spend five days in hospital over the New Year period and after remaining in pain, he learnt the knee required an operation which would keep him out for the remainder of the season and he underwent surgery on 14 February 2002. With Lincoln on the verge of administration, Holmes along with four other senior players was released at the end of the season bringing an end to his third spell with the club.