Permian-Triassic granites and associated tin deposits are widespread in the Eastern and Western belts of Peninsular Malaysia. The ages and key controlling factors of tin mineralization, however, are poorly constrained. Cassiterite separates from the Sintok and Rahman tin deposits in the Western belt, and Bandi, Setahum, Lembing, and Cherul tin deposits in the Eastern belt have U-Pb ages of 218.9 ± 3.4 and 226.8 ± 7.6 Ma, and 213.1 ± 3.9, 270.6 ± 4.6, 282.7 ± 4.6, and 281.3 ± 3.5 Ma, respectively. These ages directly constrain the tin mineralization in Peninsular Malaysia to two separate periods: 290 to 270 Ma and 230 to 210 Ma. Zircon crystals from tin-bearing granites in the Cherul and Sintok deposits have U-Pb ages of 276.0 ± 1.9 and 221.9 ± 0.6 Ma, respectively, consistent with the cassiterite U-Pb ages within uncertainties. Zircon crystals from barren granites of the Kuantan pluton in the Eastern belt have a U-Pb age of 260.5 ± 0.7 Ma, which is between the two tin mineralization periods. Zircon from these barren granites have εHf(t) values from −5.4 to 3.6, two-stage Hf model ages (TDM2) from 1.4 to 1.0 Ga, and Ce4+/Ce3+ ratios from 40 to 120. By comparison, zircon crystals from the tin-bearing granites have low εHf(t) values (−9.7 to −3.2) and Ce4+/Ce3+ ratios (4–67) and high TDM2 (1.8–1.4 Ga). Zircon ages, Hf isotopes, and trace elements indicate that the tin-bearing granitic magmas in Peninsular Malaysia had relatively low oxygen fugacity and were derived from reworking of Paleo- to Mesoproterozoic sedimentary rock-dominated crust in response to the Paleo-Tethyan subduction and continental collision. This study confirms that the nature of magma sources and redox states of magmas were key in the formation of the tin-rich granites and associated tin deposits and that the granite-related tin mineralization in Peninsular Malaysia was closely related to the evolution of the eastern Paleo-Tethys.