Balmain was established in 1880 and from 1882, it elected two members, from 1885 it elected three members and from 1889 until 1894 it elected four members simultaneously. Voters cast a vote for each vacancy and the leading candidates were elected. In 1894 it was split into Balmain North, Balmain South, Annandale and Leichhardt, each electing one member. In 1904 with the downsizing of the Assembly after Federation, Balmain North and part of Balmain South were combined into a single electorate, electing one member. In 1920, parts of the electoral districts of Balmain, Annandale, Camperdown, Darling Harbour, Glebe and Rozelle were combined to create a new incarnation of Balmain, which elected five members by proportional representation. This was replaced by single member electorates of Balmain, Annandale, Glebe and Rozelle for the 1927 election. Balmain was abolished in 1991, being replaced by Port Jackson. It was recreated for the 2007 election, largely replacing the abolished district of Port Jackson.
Historically, Balmain has been a working-class seat and very safe for Labor—at the 1978 election, Labor won an 84.2 percent two-party vote. However, as with several inner-city seats, demographic change and the rise of the Greens has seen a strong Green vote in Balmain since the party first contested the seat from the seat's recreation at the 2007 election. Following the 2019 election, it is considered a safe Greens seat.