Patients with chronic kidney disease (CKD) demonstrate complex mineral metabolism derangements and a high prevalence of vitamin D deficiency. However, the optimal method of 25-hydroxyvitamin D (25(OH)D) repletion is unknown, and trials analysing the comparative efficacy of cholecalciferol and ergocalciferol in this population are lacking. We conducted a randomised clinical trial of cholecalciferol 1250μg (50 000 IU) weekly v. ergocalciferol 1250μg (50 000 IU) weekly for 12 weeks in forty-four non-dialysis-dependent patients with stage 3–5 CKD. The primary outcome was change in total 25(OH)D from baseline to week 12 (immediately after therapy). Secondary analyses included the change in 1,25-dihydroxyvitamin D (1,25(OH)2D), parathyroid hormone (PTH), D2 and D3 sub-fractions of 25(OH)D and 1,25(OH)2D and total 25(OH)D from baseline to week 18 (6 weeks after therapy). Cholecalciferol therapy yielded a greater change in total 25(OH)D (45·0 (sd 16·5) ng/ml) v. ergocalciferol (30·7 (sd 15·3) ng/ml) from baseline to week 12 (P<0·01); this observation partially resulted from a substantial reduction in the 25(OH)D3 sub-fraction with ergocalciferol. However, following cessation of therapy, no statistical difference was observed for total 25(OH)D change from baseline to week 18 between cholecalciferol and ergocalciferol groups (22·4 (sd 12·7) v. 17·6 (sd 8·9) ng/ml, respectively; P=0·17). We observed no significant difference between these therapies with regard to changes in serum PTH or 1,25(OH)2D. Therapy with cholecalciferol, compared with ergocalciferol, is more effective at raising serum 25(OH)D in non-dialysis-dependent CKD patients while active therapy is ongoing. However, levels of 25(OH)D declined substantially in both arms following cessation of therapy, suggesting the need for maintenance therapy to sustain levels.