We provide a novel explanation to the muon g - 2 excess with new physics contributions at the two-loop level. In this scenario, light millicharged particles are introduced to modify the photon vacuum polarization that contributes to muon g - 2 at one additional loop. The muon g - 2 excess can be explained with the millicharged particle mass m(chi) around 10 MeV and the product of the multiplicity factor and millicharge squared of N-chi epsilon(2) similar to 10(-3). The minimal model faces severe constraints from direct searches at fixed-target experiments and astrophysical observables. However, if the millicharged particles are also charged under a hidden confining gauge group SU(N-chi) with a confinement scale of MeV, hidden-sector hadrons are unstable and can decay into neutrinos, which makes this scenario consistent with existing constraints. This explanation can be well tested at low-energy lepton colliders such as BESIII and Belle II as well as other proposed fixed-target experiments.