The 1946 Preston by-election was a parliamentary by-election held on 31 January 1946 for the British House of Commons constituency of Preston in Lancashire. The seat had become vacant when the Labour Member of Parliament John Sunderland had died on 24 November 1945. Sunderland had held the seat since the 1945 general election.
The Labour candidate, Edward Shackleton, held the seat for his party.