Gresham was born in Liverpool, the younger brother of William Gresham, who also went on to play for Lincoln City. James Gresham played once for Lincoln in September 1889 in the Midland League and moved to Doncaster Rovers for the beginning of the 1890–91 season. Rovers were playing in the newly formed Midland Alliance League. He played inside forward as well as outside left for Doncaster, and was part of the Sheffield and Hallamshire FA Senior Challenge Cup-winning side who beat Sheffield United 2–1. The following season Doncaster were in the Midland League. After a 3–1 defeat in the FA Cup at Lincoln, the Rovers' committee dropped a player for the following game at Loughborough; this infuriated him, and Gresham and Tom Kisbey, who had also moved to Rovers from Lincoln, refused to play in support of their teammate. Doncaster lost that match 11–2, and both Gresham and Kisbey were given a one-match suspension despite asking for their release from the club. In all games, Gresham scored 12 goals and played until he and other players made a demand for higher wages and insurance on 23 November 1891, going on strike after the club refused. A week later, all except Gresham and Kisbey resolved their differences with the club. Following this, Lincoln City paid a £20 fee to bring Gresham back to the club in December. The next season, Lincoln's first in the Second Division of the Football League, he was ever-present, but spent the season after that with Rossendale in the Lancashire League. He signed for Lincoln again in 1894, but his return was short-lived. Having injured a shoulder in the opening match of the season, he was unavailable for two weeks, and lost a significant amount of weight during that time. He returned to action, but after the match on 20 October asked the committee to allow him a rest to recover his strength. The club refused, told him he would no longer be paid, and resolved that "as Gresham has failed to qualify for a position in the first team his services be dispensed with, in accordance with the undertaking he gave when he signed, that if he did not prove strong enough he should not hold the club responsible." Gresham began legal proceedings against the club, claiming that his summary dismissal was unjust because any decrease in performance was entirely due to injuries sustained while performing his duties in the club's employ. The judge ruled that his contract was not unconditional, so could be cancelled in the event of inadequate performance, but was not convinced by the club's argument that the player's deficiencies were unrelated to his injuries. He refused Gresham's claim of £33 loss of earnings, on the grounds that he had a trade to follow when not engaged in football, but awarded him £20 in damages plus costs.