Faits: A. C._ a été occupée au service logistique de l'entreprise X._ à partir du 1er mai 1996, à raison de 11 heures hebdomadaires; de juin 2001 à février 2002, elle a accompli un nombre variable d'heures supplémentaires pour le compte de cet employeur (de 10,25 à 88 par mois). Par ailleurs, elle a travaillé en qualité de maman de jour et exercé une activité accessoire auprès de l'entreprise Y._ (inventaires). En arrêt de travail depuis le 28 février 2002, C._ s'est annoncée une première fois à l'assurance-invalidité. Par décision du 11 mai 2005, confirmée sur opposition le 10 août 2005, l'Office de l'assurance-invalidité du canton de Genève (l'office AI) a rejeté la demande, au motif que l'assurée ne présentait aucune atteinte à la santé invalidante au sens de la loi. Le 10 octobre 2006, l'assurée a présenté une nouvelle demande de prestations, en invoquant une aggravation de son état de santé. Les docteurs G._ et B._, médecins auprès du Centre médical Z._, ont attesté que l'assurée était totalement incapable d'exercer son activité d'employée aurpès de X._ depuis le 28 février 2002, en raison de cervicalgies et de lombalgies dans le cadre de troubles statiques et dégénératifs du rachis avec anomalie transitionnelle lombo-sacrée, de périarthrite scapulo-humérale et d'un syndrome rotulien bilatéral avec kyste poplité et déchirure de l'ancrage médian de la corne postérieure du ménisque interne. Ils ont précisé que l'assurée conservait une capacité de travail entière depuis toujours dans une activité adaptée à ses limitations fonctionnelles (rapport du 14 décembre 2007). L'enquête économique sur le ménage a mis en évidence un empêchement de 18 % dans la tenue du ménage. La part de l'activité lucrative et des travaux habituels de l'assurée a été fixée à 80 % et 20 %, respectivement (enquête du 17 juillet 2008). Pour établir le revenu sans invalidité, l'office AI s'est fondé sur le rapport d'employeur (X._) du 17 octobre 2008, qui faisait état d'un salaire annuel de 12'784 fr. en 2001 pour une activité de 11 heures hebdomadaires depuis 1999. En raison des nombreuses heures supplémentaires, le revenu avait atteint 27'950 fr. en 2001. Dès lors que le taux d'activité ne pouvait être fixé exactement pour 2001 et que les heures supplémentaires n'avaient pas été accomplies au cours de toute cette année-là, l'office AI a tenu compte des données relatives à l'année 2000 (17'724 fr. indexé à 18'126 fr. en 2002), au cours de laquelle l'assurée n'avait pas effectué d'heures supplémentaires et obtenu un salaire comparable à celui des années précédentes (1996 à 1999). En ajoutant le revenu d'un emploi accessoire exercé auprès de Y._ (2'390 fr. en 2001, indexé à 2'444 fr. en 2002) et celui d'une activité de maman de jour (30'000 fr. par an), l'office AI a fixé le revenu sans invalidité à 50'570 fr. pour un taux d'activité de 80 %. Quant au gain d'invalide, il a été arrêté à 32'496 fr. en application des statistiques de l'Enquête suisse sur la structure des salaires 2002 (table TA1, pour une femme exerçant une activité de niveau 4, compte tenu d'une réduction supplémentaire de 15 %). La comparaison des revenus dans l'activité lucrative a abouti à une perte de gain de 35,7 %, arrondie à 36 %. Dès lors que le taux d'invalidité global atteignait 32 % ([36 % de 80 % = 28,8 %] + [18 % de 20 % = 3,6 %], l'office AI a rejeté la demande par décision du 10 mai 2011. B. C._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, en concluant à l'octroi d'une rente entière. La juridiction cantonale a porté le revenu sans invalidité à 60'894 fr., qu'elle a déterminé uniquement sur la base des gains que l'assurée avait réalisés concrètement en 2001. Pour l'activité exercée au service de X._, elle a tenu compte d'un gain annuel de 27'950 fr. en 2001, indexé à 28'450 fr. en 2002. Le revenu global sans invalidité atteignait ainsi 60'894 fr. La Cour de justice a dès lors fixé le taux d'invalidité global à 41 % (46,64 % pour la sphère professionnelle) et reconnu à l'assurée le droit à un quart de rente d'invalidité à compter du 30 juillet 2010, date à laquelle les mesures de reclassement avaient pris fin. Le le recours a été partiellement admis par jugement du 1er novembre 2012. C. L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, en concluant à la confirmation de sa décision du 10 mai 2011. L'intimée conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer.