Latham is the son of former New Zealand cricketer Rod Latham.
Latham made his debut for Canterbury in the 2010–11 Plunket Shield season, scoring 65 in his maiden first-class cricket innings. He had played youth cricket for Canterbury, captaining the under-19 side, and played for the Canterbury A team from the 2008–09 season. During 2010 Latham had been a member of the Durham County Cricket Club academy in England. He played matches for Durham Second XI and a Northumberland development XI as well as playing club cricket in the North East Premier League in England for Gateshead Fell.
Latham has appeared in all formats of the game for Canterbury. He spent the 2013 English summer playing in north-east England again, playing for South Shields in the North East Premier League and Scotland in the 2013 Yorkshire Bank 40 competition, the major English List A competition in 2013, as well as making two further appearances for Durham's second XI. He was selected for the touring New Zealand Test squad during the summer and for the T20 squad, playing in both T20 internationals on the tour.
Kent signed Latham as an overseas player for the 2016 English season. He made his County Championship debut against Glamorgan at Canterbury in May, scoring half-centuries in both innings, the first Kent batsman in history to do so on debut. After playing in all three formats of the game for the county, Latham left Kent in mid-July to join the New Zealand team in Zimbabwe.
In 2017 Latham signed as an overseas player with Durham for the second half of the 2017 English cricket season.
Latham scored 24 runs on debut, batting at number five, in an ODI against Zimbabwe in 2012. He made his Twenty20 International debut against the West Indies on 30 July, making 15 and 19 in the series. Latham also played in the tour's ODI series but failed to contribute significantly, his highest score being 32. He was recalled against Bangladesh, where he played a bright innings of 43 while opening the batting, and scored a match-winning 86 off 68 balls during the following tour of Sri Lanka.
He made his Test match debut against India in February 2014, with scores of 29 and 0. He then toured the West Indies with New Zealand in June, playing in all three Tests and two T20s. He had a highly successful Test series, scoring three half-centuries and 288 runs in total, finishing second in the series list of top run scorers, just behind team-mate Kane Williamson. In doing so he helped his side to an overseas series victory. By July 2014 he had claimed the spot of opener after a run of poor form for incumbents Hamish Rutherford and Peter Fulton. His first Test century was achieved against Pakistan in Abu Dhabi, on 11 November 2014; he scored 103.
Despite his position as an opening batsman in Test matches, Latham was named as a middle-order batsman and backup wicket-keeper to Luke Ronchi for the 2015 Cricket World Cup. He also shared Test wicket-keeping duties against England with BJ Watling, keeping for New Zealand in the first Test at Lord's following an injury to Watling. When he is not a keeper he generally fields close to the wicket or in the slips.
Latham was selected to tour Zimbabwe in 2015 as an opening batsman. During the second ODI of the series, he scored his maiden ODI century of 110 not out as part of an unbeaten partnership with Martin Guptill of 236 as New Zealand won the match by 10 wickets to level the series. In the third Test against Australia in the 2015-16 Trans–Tasman Trophy, the first ever day-night Test match, Latham became the first man to score a fifty in a day-night Test.
In October 2016 , while playing against India at Dharamshala Latham became the tenth batsman and the first New Zealander to carry his bat in an ODI.
In January 2017 Latham was named as the New Zealand wicket-keeper for the Chappell-Hadlee series. In the first ODI of that series he equalled New Zealand's record of five dismissals as a wicket keeper in an ODI innings. Due to poor form with the bat, however, he was dropped on 1 March for the series against South Africa.
In May 2017 Latham was recalled and named as captain for the Ireland Tri-Series against Ireland and Bangladesh in Ireland with a number of regular players playing in the 2017 Indian Premier League.