Faits: A. A.a. X._, né en octobre 1955, exerçait depuis 1983 une activité professionnelle à titre indépendant. En 1992, il a conclu avec la société d'assurance Y._ SA une police de prévoyance comprenant entre autres une assurance en cas d'incapacité de gain, sous la forme d'une rente annuelle maximale de 36'000 fr.; celle-ci devait être versée après un délai d'attente de vingt-quatre mois, jusqu'au 1 er avril 2021 au plus tard. A défaut de paiement des primes, le contrat s'éteignait à l'échéance du délai fixé par sommation préalable. En août 1997, l'assuré a été victime d'un accident de la circulation. Il n'a pas pu reprendre son activité professionnelle à 100 %. Dans un rapport du 12 novembre 1998, l'expert médical A._ a jugé que l'état du patient était stabilisé et a fixé à 30,5 % le taux d'invalidité médico-théorique permanente liée à l'accident. Dans un rapport ultérieur du 4 septembre 2003, l'expert a retenu une incapacité de travail de 50 % tenant compte des seuls troubles somatiques; il précisait qu'en tout état de cause, la capacité de travail ne dépasserait pas ce pourcentage. A.b. Le 23 mars 2002, l'assuré a déposé une demande de prestations d'assurance invalidité (AI) auprès de l'Office cantonal de l'assurance invalidité (OCAI). Le 2 juin 2005, ce dernier a refusé toute rente au motif que l'assuré n'avait pas connu de perte au niveau de son chiffre d'affaires, malgré l'aggravation constatée de son état de santé. Saisi d'une opposition, l'OCAI a confirmé sa position le 19 février 2007. Statuant par arrêt du 13 mai 2008, le Tribunal cantonal des assurances sociales du canton de Genève a modifié la décision de l'OCAI et accordé à l'assuré une demi-rente d'invalidité entre mars 2001 et août 2002, puis une rente entière dès septembre 2002; il a reconnu l'existence d'une invalidité permanente partielle (50 %) dès le mois de mars 1998, puis totale dès le 2 septembre 2002. Cet arrêt a été déféré au Tribunal fédéral, qui l'a rejeté en date du 23 mars 2009 (9C_510/2008). A.c. Entre le 1 er septembre 2002 et le 30 septembre 2006, la compagnie d'assurance a versé à l'assuré des demi-rentes trimestrielles. Durant cette même période, l'assuré a payé les primes d'assurance à concurrence de la moitié des montants convenus. Le 18 septembre 2006, la société d'assurance a informé l'assuré que les rentes trimestrielles ne seraient à nouveau versées qu'après réception de documents permettant de déterminer clairement la perte de gain, ou réception d'une nouvelle décision de l'OCAI; à défaut d'obtenir les documents requis dans un délai échéant le 1 er novembre 2006, elle classerait le dossier et demanderait la restitution des prestations versées en trop. L'assuré était en outre invité à régler au plus vite les primes réclamées afin d'éviter une libération de la police. Le 3 mai 2007, la compagnie d'assurance a accordé à l'assuré un délai de quatorze jours pour payer les primes échues s'il entendait éviter la transformation de son assurance. Par courrier du 4 septembre 2007, elle a informé l'assuré qu'en raison du non-paiement ou du paiement partiel de l'arriéré de primes, son assurance avait été modifiée; elle lui a transmis une nouvelle police ne prévoyant aucune prestation en cas d'incapacité de gain. Le 4 septembre 2009, l'assuré a signalé à la compagnie d'assurance qu'il avait été mis au bénéfice d'une rente d'invalidité; il lui a demandé de verser les prestations dues selon sa police d'assurance. La société d'assurance a refusé, en faisant valoir que l'incapacité de gain n'était plus assurée depuis le 1 er avril 2007. B. B.a. Le 6 août 2010, l'assuré a ouvert action contre la compagnie d'assurance devant le Tribunal de première instance du canton de Genève. Selon ses dernières conclusions du 18 novembre 2011, il requérait le paiement de 278'381 fr. pour la période du 1 er septembre 2002 au 30 octobre 2011, à titre d'indemnisation de son incapacité de gain et de remboursement des primes payées en trop; il demandait en outre le paiement d'une rente mensuelle de 3'000 fr. à compter du 1 er novembre 2011 jusqu'au 30 mars 2021 au plus tard, pour autant que dure son incapacité de gain. La société d'assurance a conclu au déboutement de l'assuré; elle a notamment soulevé l'exception de prescription. Par jugement du 2 février 2012, le Tribunal a retenu la prescription et rejeté l'action sans se prononcer sur les autres questions litigieuses, dont en particulier celle de la suppression du droit de l'assuré à des indemnités pour perte de gain à partir du 1 er avril 2007. B.b. L'assuré a interjeté appel. Statuant par arrêt du 19 octobre 2012, la Chambre civile de la Cour de justice a considéré que les prétentions émises par l'assuré étaient prescrites et que la société d'assurance n'avait pas commis un abus de droit en soulevant l'exception de prescription. En conséquence, elle a rejeté l'appel et confirmé le rejet de l'action. Les considérants de l'arrêt peuvent succinctement se résumer comme il suit: l'invalidité permanente de l'assuré avait été objectivement établie au plus tard le 4 septembre 2003, par le rapport d'expert daté du même jour. Le délai de prescription de deux ans prévu à l'art. 46 LCA (loi fédérale sur le contrat d'assurance; RS 221.229.1) avait donc commencé à courir au plus tard ce jour-là. La prescription avait été interrompue par les versements trimestriels effectués dès septembre 2002 jusqu'en septembre 2006. Un nouveau délai de prescription biennal avait commencé à courir le 1 er octobre 2006 pour expirer le 1 er octobre 2008, à défaut d'acte interruptif. La prétention en paiement des prestations d'assurance était donc prescrite. Quant au remboursement des primes versées en trop, il était régi par les règles sur l'enrichissement illégitime. Le délai de prescription d'un an avait commencé à courir le 13 mai 2008, date à laquelle le Tribunal des assurances sociales avait reconnu l'invalidité totale de l'assuré; il était arrivé à échéance le 13 mai 2009 sans avoir été interrompu. Ainsi, toutes les prétentions de l'assuré étaient prescrites lorsqu'il avait ouvert action le 6 août 2010. C. Par-devant le Tribunal fédéral, l'assuré (ci-après: le recourant) interjette un recours en matière civile, concluant à l'annulation de l'arrêt d'appel, au rejet de l'exception de prescription et au renvoi de la cause à l'autorité de première instance afin qu'elle statue sur le fond du litige. La compagnie d'assurance (ci-après: l'intimée) conclut au rejet du recours et à la confirmation de l'arrêt attaqué. L'autorité précédente se réfère à son arrêt.