Ballance first played in the Second XI Championship in 2006, having made five appearances for Zimbabwe in the 2006 Under-19 World Cup, in which the team finished in sixth place. In the final match for the team, Ballance scored a half-century, gaining notice from Derbyshire and earned the chance to sign for the team in 2006. He played his first limited overs match two weeks later, having performed in the Derbyshire Second XI.
At the end of the 2007 season, Ballance left Derbyshire to sign academy terms with Yorkshire. He made his first-class debut for Yorkshire against Kent at the St Lawrence Ground, Canterbury, in July 2008. In the first-class match against Durham MCC University in April 2011, Ballance scored 72 and 73 not out. He made his England debut on 3 September 2013 in an ODI against Ireland. On 25 April 2015 Ballance became the third fastest England Test cricketer to reach 1,000 runs, in the second test against West Indies.
Ballance was named a Cricketer of the Year in the 2015 edition of the Wisden Cricketers' Almanack.
Ballance was born and raised in Zimbabwe, where his parents were tobacco farmers. He attended Springvale House and Peterhouse Boys' School. After representing Zimbabwe in cricket at various age levels, he moved to England in 2006. He attended Harrow School for 2 years, where he was in the same team as Sam Northeast. Playing for Harrow, he scored a century against Eton College at Lord's.
Ballance is related to former Zimbabwean Test cricketer David Houghton through his father, who is a cousin of David's wife.
Ballance is colour blind.
Following impressive performances for Yorkshire and the England Lions, Gary Ballance debuted for England against Ireland, in Dublin, on 3 September 2013 but failed to impress with the bat after getting caught behind without having scored a run.
Ballance was selected for the England squad for the 2013-14 Ashes series. He was selected to play in the 5th Test ahead of fellow Yorkshire team mate Joe Root. He became the 659th player to play for England and was handed his cap by captain Alastair Cook. He was one of three players, the others being Scott Borthwick and Boyd Rankin, to make their debuts in the 5th Test. In the first innings he made 18 runs after coming in with the score at 17/4 and helped England to 155 all out. Test Match Special commentator Geoffrey Boycott acknowledged that Ballance was incredibly unlucky to be dismissed, receiving a corker that pitched in the footmarks. In the second innings he made 7 runs finishing the series with 25 runs. Ballance's next call-up was against Australia during the England tour of Australia. In the 1st ODI, at the MCG, Ballance top scored for England, making 79 runs off 96 balls. However this was not enough to help England win as Australia cruised to a 6 wicket win. Ballance kept his place for the 2nd ODI however he managed only 9 runs off 19 balls before being stumped by Brad Haddin. In the 3rd ODI Ballance batted at number 4 and made 26 runs off 42 balls. He retained his place for the 4th ODI and made 18 runs off 30 balls before being caught. Ballance was left out of the 5th ODI and was replaced by Joe Root.
Ballance featured in the 1st ODI against Sri Lanka, he top scored with 64 runs in England's win. In the 2nd ODI he only made 5 runs in England's 99 run innings. He played in the 3rd ODI however he was not needed in England's 10 wicket win. Ballance was included in the squad for both of the test matches against Sri Lanka, batting at number three as a replacement for Jonathan Trott who had stepped away from cricket during the 2013–14 Ashes. In the first test at Lord's, he made 27 runs in the first innings before reaching his maiden Test hundred in just his second Test match in the second innings, ending not out on 104. He was one of 4 centurions in the series for England, the others being Moeen Ali, Sam Robson and Joe Root, who made a double hundred. Ballance had mixed fortunes in the second test, scoring 74 in the first innings before being dismissed for a golden duck in the second, finishing the series with 205 runs.
In the first test against India, Ballance continued his good form with the bat by making 71 in the first innings as the match ended in a draw. Ballance hit his second Test hundred on 18 July 2014 against India. He scored 110 before being caught behind off Bhuvneshwar Kumar, bringing England back into the match after struggling on 113/4. Ballance became only the third England player to score hundreds in his first two Lord's Tests, after Andrew Strauss and Jonathan Trott. Ballance scored an impressive 156 in the first innings of the third test but was unfortunate to be given out through a poor decision by the umpire. He was again unlucky when, on 38 in the second innings, he was given out caught when the ball only touched his trouser. In the fourth match of the series he was only required to bat once, making 37 as England won to go 2-1 up in the series. He made 64 in the final test to help England win the game and the series 3-1. He played in the fourth ODI between the two sides, but could only make seven.
After recovering from injury Ballance played in England's opening game of the World Cup against Australia, where he was dismissed for ten. He was out for ten again as England slumped to an eight wicket defeat against New Zealand. He again only made ten against Scotland, leading to suggestions he would be dropped from the side for the next game against Sri Lanka. However, he kept his place and was dismissed for six as England lost their third game of the tournament. Ballance was then dropped from the side and played no further part in the tournament as England were eliminated at the Group stage. He, along with James Anderson, Stuart Broad, Moeen Ali, Chris Woakes and James Tredwell were dropped to focus on test cricket.
Ballance continued in his role as No.3 batsman during England's tour of the West Indies. In the first Test of the three-Test series, he made ten runs in the first innings and then a century in the second innings. In addition to scoring the winning runs in the second Test, he became the third fastest England cricketer to reach 1,000 runs for his career, behind Herbert Sutcliffe and Len Hutton. In the third Test he was less prolific, making scores of 18 and 23 as England suffered two batting collapses to lose the game by five wickets and draw the series 1-1.
Ballance endured a difficult series against New Zealand. He made one in England first innings of the first Test and was then dismissed for a duck in the second innings. Despite this, England went on to win the game by 124 runs. His problems continued in the next Test as he was dismissed for 29 in England's first innings. In the second innings he was dismissed for six as England lost the game by 199 runs to draw the series 1-1.
In the first Ashes Test, Ballance scored 60 in the first innings, but scored a duck in the second innings, as England secured a comfortable opening win by 169 runs. In the second Test, Ballance was out for 23 in England's first innings as they were dismissed for 312. In England's second innings he was dismissed for just 14 as England were bowled out for just 103 and suffered a humiliating 405 run defeat. Following the game, Ballance was dropped in favour of Jonny Bairstow and played no further part in the series. England went on to win the series 3-2.
Ballance was recalled due to Nick Compton's poor form, and James Taylor being forced into retirement. Ballance returned to the side for the Test series against Pakistan and made six in England first innings. He made 43 in their second innings as England lost the opening match by 75 runs. In the second Test he only batted once, making 23 as England went on to secure a 330 run victory to level the series at 1-1. He made 70 in the first innings of the third Test, and made 23 in the second innings as England turned around the match to win 141 runs after a strong bowling display in the second innings. Ballance made eight in England’s first innings of the final Test, as England were dismissed for 328. England went on to lose the game by 10 wickets and draw the series 1-1, with Ballance making 17 in England’s second innings.
In the first Test against Bangladesh, Ballance could only manage scores of 1 and 9, although England did enough to win the game by 21 runs. In the second Test, Balance managed just 9 in England’s total of 244, and again failed in the second innings, this time making 5 as England lost the match by 108 runs and drew the series 1-1.
On July 6, 2017, Gary Ballance was recalled to play in the first test against South Africa at Lord's after his form recovered for Yorkshire, and was selected under Joe Root's recommendation. Ballance played the first two tests before a broken thumb ruled him out of the next two matches.