Background: Little is known about variations in the provision of chronic care services in primary care. Aim: To describe the frequency of chronic care services provided by GPs and analyse the extent of non-random variation in service provision. Design and setting: Nationwide cohort study in Denmark in 2016. Method: Information on chronic care services was obtained from national health registers, including annual chronic care consultations, chronic care procedures, outreach home visits, and talk therapy. The associations between provided services, patient morbidity, and socioeconomic factors were estimated. Service variations were analysed, and excess variation related to practice-specific factors was estimated while accounting for random variation. Results: Chronic care provision was associated with increasing patient age, increasing number of long-term conditions, and indicators of low socioeconomic status. Variation across practices ranged from 1.4 to 128 times more than expected after adjusting for differences in patient population and random variation. Variation related to practice-specific factors was present for all investigated chronic care services. Older patients with lower socioeconomic status and multimorbidity were clustered in practices with low propensity to provide certain chronic care services. Conclusion: Chronic care was provided to patients typically in need of healthcare, i.e. the old, those with multimorbidity, and those with low socioeconomic status, but service provision varied more than expected across practices. GPs provided slightly fewer chronic care services than expected in practices where many patients with multimorbidity and low socioeconomic status were clustered, suggesting inverse care law mechanisms.