Circadian clocks ubiquitous in life forms ranging bacteria to multi-cellular organisms, often exhibit intrinsic temperature compensation; the period of circadian oscillators is maintained constant over a range of physiological temperatures, despite the expected Arrhenius form for the reaction coefficient. Observations have shown that the amplitude of the oscillation depends on the temperature but the period does not---this suggests that although not every reaction step is temperature independent, the total system comprising several reactions still exhibits compensation. We present a general mechanism for such temperature compensation. Consider a system with multiple activation energy barriers for reactions, with a common enzyme shared across several reaction steps with a higher activation energy. These reaction steps rate-limit the cycle if the temperature is not high. If the total abundance of the enzyme is limited, the amount of free enzyme available to catalyze a specific reaction decreases as more substrates bind to common enzyme. We show that this change in free enzyme abundance compensate for the Arrhenius-type temperature dependence of the reaction coefficient. Taking the example of circadian clocks with cyanobacterial proteins KaiABC consisting of several phosphorylation sites, we show that this temperature compensation mechanisms is indeed valid. Specifically, if the activation energy for phosphorylation is larger than that for dephosphorylation, competition for KaiA shared among the phosphorylation reactions leads to temperature compensation. Moreover, taking a simpler model, we demonstrate the generality of the proposed compensation mechanism, suggesting relevance not only to circadian clocks but to other (bio)chemical oscillators as well.