Max è un tenero cagnolino che vive a New York con la sua padrona Katie, a cui vuole molto bene. Quando Katie va al lavoro, Max passa le sue giornate con gli altri animali domestici che abitano nel suo condominio, attendendo con ansia il rientro della padrona. Un giorno Katie rincasa con Duke, un enorme cane peloso, prelevato dal canile locale. Duke si dimostra subito affettuoso e disposto a coabitare, ma a Max la cosa non piace e cerca di convincere Katie a sbarazzarsi di lui. Quest'ultimo, scoperta la cosa, cambia subito atteggiamento e si dimostra a sua volta ostile verso Max.
Il giorno dopo Duke, nel tentativo di afferrare un criceto amico di Max, rompe un vaso. Max, seguendo il consiglio di Chloe, una sua amica gatta, usa la cosa a suo vantaggio e inizia a mettere a soqquadro la casa, ricattando Duke: lui dovrà fare tutto quello che gli dice Max, altrimenti lo farà cacciare. Duke è costretto ad accettare e da quel momento Max si dimostra decisamente autoritario e scortese nei suoi confronti. Un giorno i due vengono portati al parco da un dog-sitter, che però dimentica di togliere il guinzaglio a Max. Appena l'umano non guarda, Duke, stufo del comportamento di Max nei suoi confronti, porta Max lontano dal parco tirandolo per il collare e lo scaraventa dentro un bidone dell'immondizia. Prima che Duke possa dileguarsi, i due vengono circondati da un gruppo di gatti randagi, che riescono a strappare loro i collari e sono sul punto di aggredirli, quando vengono raggiunti da due accalappiacani. I randagi fuggono, ma Max e Duke vengono acciuffatti.
Durante il tragitto verso il canile, il veicolo degli accalappiacani viene preso d'assalto da un gruppo di animali guidato da Nevosetto, un coniglio isterico e autoritario che odia gli umaniː gli animali riescono a impossessarsi del furgone, liberando un loro compagno. Millantando il fatto di odiare a loro volta gli esseri umani, Max e Duke riescono a convincere Nevosetto a portarli con loro e tutti insieme si dirigono alle fogne. Una volta lì, Max e Duke scoprono che Nevosetto è il capo di una segreta banda di animali randagi di specie diverse tra loro (cani, gatti e tanti altri) che odiano gli umani perché sono stati da loro abbandonati. Nevosetto vuole far entrare nella sua banda anche Max e Duke e li sottopone a un rito di iniziazione: i due dovranno essere marchiati dal morso di una vipera. Mentre Max sta per essere marchiato, i randagi che avevano tolto i collari ai due cani rivelano a Nevosetto che i due sono semplici animali domestici, e il coniglio ordina ai suoi compagni di eliminare i due. Duke si erge in difesa di Max, e nel combattimento la vipera finisce schiacciata da un ammasso di mattoni e muore. Max e Duke, costretti alla fuga, raggiungono il sistema fognario e, seguendo i condotti, riescono a raggiungere sboccare in mare, salvandosi salendo su un battello diretto a Brooklyn.
Nel frattempo Gidget, una cagnetta vicina di casa di Max, del quale è segretamente innamorata, si accorge della sua assenza e organizza un gruppo di salvataggio composto da sé stessa, Chloe, i cani Buddy e Mel, il parrochetto Pisellino e il falco Tiberius. Gli animali si recano da Nonnotto, un bassotto molto vecchio e con le zampe posteriori paralizzate, che li conduce gli animali in giro per la città sulle tracce di Max e Duke. Max e Duke, nel frattempo, raggiungono un negozio di salsicce, dove si rifocillano, mangiando fino a essere sazi e riuscendo definitivamente a fare amicizia. Dopo aver mangiato, Duke rivela a Max di aver avuto un altro padrone in passato e di essere finito al canile perché si era allontanato da lui per sbaglio. Max, commosso e colpito dall'affetto che Duke prova per il suo vecchio padrone, decide di accompagnare l'amico da lui. Una volta recatisi nella casa dove Duke alloggiava, scoprono che il vecchio padrone è morto. Deluso e rattristato dalla cosa, Duke si arrabbia con Max, accusandolo di averlo portato lì solo per sbarazzarsi di lui. Max, offeso dalle sue parole, si allontana, ma viene nuovamente catturato dagli accalappiacani. Duke, in uno slancio di altruismo, salva l'amico, venendo però rinchiuso al suo posto. Max si lancia subito all'inseguimento del furgone per salvare Duke, ma viene intercettato da Nevosetto, che con i suoi compagni vuole ucciderlo per vendicare la vipera. Gli accalappiacani si accorgono di loro e li prendono tutti, tranne Max e Nevosetto, i quali, malgrado tutto, sono costretti ad allearsi per salvare i loro amici.
Max e Nevosetto rubano un autobus e riescono a raggiungere il camion degli accalappiacani, che - speronato dai due - finisce fuori strada e precipita dal ponte di Brooklyn. Gli amici di Nevosetto riescono a fuggire, ma Duke resta intrappolato nel camion. Max vorrebbe salvarlo, ma viene circondato dagli amici di Nevosetto, che lo credono responsabile della morte del loro capo, che nello schianto dei due mezzi ha perso i sensi e sembra morto. Per Max sembra la fine, ma proprio allora arrivano Gidget e gli altri, che riescono a mettere fuori combattimento gli amici di Nevosetto, il quale nel frattempo si riprende e chiarisce tutto. Max si getta nel camion per salvare Duke, e con l'aiuto di Nevosetto riesce a nell'intento, liberando Duke. Raggiunta la superficie, tutti gli animali rubano un taxi, con il quale tornano nel palazzo dove abitano Max e gli altri. Prima di rientrare, Max e Gidget si confessano i rispettivi sentimenti, diventando una coppia. Gli animali tornano nei rispettivi appartamenti, mentre Nevosetto e i suoi si allontanano per tornare nelle fogne; prima di ritirarsi gli animali vengono raggiunti da una bambina, che, affascinata da Nevosetto, decide di prenderlo con sé. Il coniglio, malgrado l'iniziale diffidenza, acconsente e, felice, si allontana con la nuova padrona.
Max e Duke rientrano nel loro appartamento appena un momento prima che Katie torni a casa. Nel finale, tutti e tre si mettono sulle scale a guardare i cieli di New York e Max, ormai affezionatosi a Duke, gli da il benvenuto nella famiglia. Duke, felice di aver finalmente trovato una casa, lo ringrazia.
it.wikipedia.org