Todo inicia en una oscura noche, Ash y sus amigos se dirigen a ver la cometa del milenio, están por llegar al pueblo que planeaban ir… Pero resultó ser un lugar despoblado. El cometa del milenio es una cometa que aparece durante 7 días cada 1000 años. Estaban por participar en el festejo, no tenían ni idea que algo más siniestro estaba por pasar. Más tarde en la noche aparecen varios camiones de la feria, llenos del equipo para las fiestas, listos para poner en marcha la fiesta, casi momentos después inician instalando todos los juegos de la feria. Luego sale un mago practicando, haciendo aparecer muchos globos. Luego una mujer práctica botando esas bolas de manera precisa.
Más tarde instalaron vías de tren para que asistieran a la feria los turistas.
Ash y sus amigos juegan, el equipo rocket de espías andan como si fuesen del personal. Ash mira un cartel del mago de anoche, está ansioso de ver sus espectáculo, ellos van y contemplan las maravillas que hace, haciendo aparecer la dama de anoche con una gema muy brillante, Max se le va la palabra “deseo”, Brock obviamente se maravilló con la dama, el mago se nombra como el gran Butler, y su bella acompañante (y novia) como Diane. Max escucha en su cabeza una voz que le dice que pida deseos, ese mensaje mental provenía de esa extraña y hermosa gema azul de la dama, Max al oír el mensaje de inmediato va al estadio del establecimiento, donde estaba la gema.
Max va a la pista y dijo haber oído una voz, Ash baja a regañar a Max, pero el mago los mira y los acepta a ambos como voluntarios, llamándolos pequeños magos, el mago saca una caja ardiente, el equipo rocket (disfrazados de payasos) esperan el momento oportuno de atrapar a Pikachu. El mago llama al dúo "magos", pero Ash y Max obviamente no lo eran, Dusclops planea destruir la caja en 10 segundos, el truco fue aventar a Ash y Max bajo la pista y salieran detrás de la pista con engranes, haciendo el efecto de magia, y aparecen ante todos como grandes magos, los payasos rocket capturan a Pikachu y se quitan el disfraz, e intentan robarse los Pokémon del show, pero como truco bajo la manga el mago planea hacer que Dusclops haga que Pikachu caiga en las manos del equipo rocket. Pero Pikachu usa impactueno y libera los Pokémon del circo, Dusclops finaliza con rayo oscuro y manda a volar al equipo rocket.
Termina el show, y el mago Butler les cuenta la historia de Jirachi, que despierta cada 1000 años, y que se encuentra dentro de gemas, solo debe ser visible de noche, cuando salga la comenta, y debe buscarse a un amigo (Max), Jirachi también tiene el poder de conceder deseos, pero antes debe tener un amigo, May se muestra insistente de tocar la roca pero Max no lo deja por haberse burlado antes.
Max se lleva de paseo la gema, van al puesto y encuentran una objeto del puesto que dice hacer cumplir deseos cuando salga la comenta, en esos momentos inician los fuegos artificiales. Más tiempo pasa y el cometa todavía no sale, Max desea ser un muy buen amigo de Jirachi… Se mueven las nubes, dejando al descubierto el cielo, y el majestoso comenta milenario aparece, y al tiempo justo, May saca su objeto que compró y pide un deseo, Max se había quedado dormido abrazando la gema a esas horas, May tararea y se levanta, dice que era la canción de cuna que cantaba su mamá, la cometa sigue pasando y Max sigue durmiendo, pero de repente se despierta cuando la gema brilla, la estrella contiene a Jirachi dentro de la gema, un Absol aparece y brinca al percatarse del asunto, la roca brilla más y se transforma en un Jirachi ante los ojos de Ash y los demás. Max atrapa a Jirachi. El día siguiente Max se despierta y saluda a Ash y Pikachu. Diane aparece en otra escena donde le va a contar a Butler de la novedad, la dama va corriendo y le cuenta al mago Butler, Butler tenía planeado usar a Jirachi para abusar de él en sus trucos.
Max le pregunta a Jirachi si cumple deseos, Max y todos quieren desear cosas, pero Max desea dulces, Jirachi intenta y de repente aparecen por todos lados dulces, pero son dulces de otros sitios (no son espontáneos) dulces de establecimientos de ventas empiezan a desaparecer y los vendedores asustadizos gritan sobre de lo que está pasando, Ash y sus amigos, todos maravillados quieren pedir deseos de Jirachi, y en el vehículo donde pasarían la noche y en donde están colapsa de la tan grande cantidad de dulces que Jirachi creó, al parecer Jirachi invocó una cantidad inmoderada de dulces.
Ash y todos se levantan de la multitud de cosas, el par de magos vinieron, y vieron como Jirachi trajo todos esos dulces, pero los magos ya sabían que eran dulces del circo, ahora May desea revertir el deseo, eso no sucede, y Jirachi se duerme, May se enoja del sueño tan inmaduro de Max, pero solucionan el problema regresando, Jirachi se despierta ante Max, y ve que Jirachi se veía medio dormido y abraza Max. Ash y todos se visten de payasos, y ven como se llevan tan bien Jirachi y Max.
Max y Jirachi juegan todos los juegos de la feria. El equipo rocket observa a lo lejos a Jirachi, planeando robarlo, también planean que deseo hacer, terminando con deseos tontos.
El Absol de la noche aparece viendo a lo lejos del circo. UNA cosa de metal estaba por caer sobre May, Max intenta ayudar, pero Jirachi aparece y le quita los lentes a Jirachi y hace que le caiga encima el metal, Jirachi recupera sus lentes y abraza a Jirachi.
Luego de repente aparece un Absol rompiendo un espejo, y empieza a atacar un Jirachi, los Absols solo aparecen cuando está por suceder una gran tragedia dice Butler, el Absol pelea contra el Torchic de May y el Pikachu de Ash y Jirachi desean que se teletransporten, Absol estaba por atacar a Ash y sus amigos pero Butler presiona un botón y hace caer a Absol en una plataforma y lo enjaula, y termina con un hipnosis de Gardevoir, Absol parecía estar muy enojado con Jirachi, eso todavía no se sabe por qué, Jirachi termina diciendo que tiene mucho sueño.
La segunda noche comienza, May sale e intenta nuevamente a pedir su segundo deseo, pero a lo lejos aparece Butler caminando, May se pregunta qué estará haciendo. Butler de repente pone a Jirachi en un dispositivo, Diane piensa que algo muy malo podía suceder, Butler consciente de ello la ignora y dice a Jirachi que cuando vea su primero ojo, al magma le dice que con una pieza fosilizada de Groudon planean regenerarlo, en ese momento con un dispositivo intentan crear a Groudon pero resulta destrozado, Butler pide más energía, todos se ríen del equipo magma del mago y lo rechazan, por no crear bien su trabajo, Butler se enoja por que se hallan burlado, le pide a Jirachi que abra su verdadero ojo y cumplir su deseo, Jirachi no quiere, pero Butler le ordena a Dusclops abrir el ojo de Jirachi con sus poderes, lo hace lentamente y lo logra, liberando un poderoso rayo hacia la cometa, redirigiéndolo a Jirachi, haciendo una explosión por todos lados, Jirachi resulta lastimado y Max corre por el Jirachi, Butler está enojado y le dice que no se preocupe Max, pero el corre, Dusclops detiene a Max, pero el impactrueno de Pikachu impide a Dusclops hacerlo y huyen, Absol aparece justo antes que Dusclops comienza a seguirlos nuevamente, mago saca Mightyena a atacar Absol, mientras Ash y todos en el camión se van al pueblo que Jirachi desea, Mightyena termina siguiendo el camión para colocar un dispositivo de rastreo, Jirachi desea regresar a donde estuvo.
Butler era un científico del equipo magma que estaba en el proyecto Groudon, él intentó crear un Groudon pero falló, aunque la participación de Jirachi era para extraer la energía de Jirachi y usarlo para crear a Groudon, para vengarse del equipo magma. El rastreador que le pusieron al camión sirvió para ver donde estaban, Butler activa un dispositivo diciendo que ya es hora para usarlo.
Tiempo pasa y el camión está por llegar a su destino, y el dispositivo se cae, May saca su objeto en la tercera noche y corre.
Ash y todos se quedan dormidos esa noche menos May, May entra y ve a Diane viendo el cartel del mago, Diane le comenta a May que conocía al mago desde chicos, y que siempre lo hacia reír. Hacía mucho tiempo que Diane dice no haber visto a Butler no se riera tanto, y espera que después de la cometa se vuelva una persona normal.
El día siguiente arrancan su camino hacia la cueva, y el equipo rocket como siempre espiándolos a lo lejos, a veces se atascaba el carro de logo, pero salían, la cuarta noche y May seguía con su intento de deseo, y todos juegan, el día siguiente (quinto día) ya están más cerca, ya de noche May se acerca a una piedra y saca su objeto para desear, Max se siente mal de que solo queden dos días más para que Jirachi se marche, Ash dice que Jirachi siempre estará en su corazón, y que no se sienta mal, que lo recordara por siempre, haciendo referencia de su amiga May que la dejo pero que siempre lo recuerda.
Es el séptimo día y llegan a Forina, el lugar de Jirachi, un verdadero paraíso lleno de diversos Pokémon, todos admiran la belleza del lugar. Pasa y llega la noche, May saca su objeto mientras que Jirachi y Max juegan, pero May le dice a Max que mejor se duerma, aunque Max no quiere dormir porque será su ultima noche con Jirachi, y May canta la canción de cuna de mamá, y a todos les parece gustar el canto, e hizo dormir a Jirachi y Max. Pasa el día siguiente al último, y se encuentran a Absol, Absol les mostrará el camino, llega el atardecer y miran como varios Pokémon aparecen a darle la bienvenida a Jirachi a su hogar, llegan a la gran cueva, encienden luces puesto que todo estaba oscuro, Absol los guía al sitio donde Jirachi durmió por 1000 años, luego Absol corre. Llegan a una parte donde se ve el cielo, la estrella me llama dice Jirachi, Max le pide a Jirachi que no se valla, pero Jirachi dice que la estrella llego, Diane dice que está preparándose a abrir su primer ojo para absorber la energía, en los 1000 años que duerme libera poco a poco esa energía, alimentando el ambiente.
De repente una maquinaria maligna aparece y captura a Jirachi, era nada más que Butler, Butler ahora desea invocar a Groudon con la energía de Jirachi, Butler emocionado pone a Jirachi dentro de un dispositivo, intenta nuevamente robar la energía de Jirachi que obtiene de la cometa, el equipo rocket fascinado no saben lo que sucede.
La energía redirigida viene hacia Jirachi y lo carga de poder, el mago Butler se prepara para utilizar el dispositivo y lo activa, creando una superficie que e invocará a Groudon, desde abajo Absol y Pikachu intentan destruir los objetos del mago, un Flygon salvaje opta por ayudar llevándose a Ash y mientras la plataforma del mago es creada, la energía de Jirachi ha formado poco a poco a Groudon. Ash llega pero, Butler saca un Salamence, éste libera un lanzallamas y se lleva volando al mago, Flygon esquiva los ataques de Salamence, Max y Pikachu están por brincar a la plataforma, lo logran y Pikachu intenta hacer corto circuito, lo logra rápidamente y rescata a Jirachi, posterior a eso se va con Flygon. El trabajo delo majo queda inconcluso, Max ve cómo Jirachi cierra du verdadero ojo y se despierta. Diane y todos salen de la cueva, Ash y Max bajan y agradecen a Flygon y se va, vuelven a verse y May abraza a Max y dice lo preocupada que estaba por él.
Al parecer la energía usada fue suficiente para invocar el Groudon exitosamente, el Groudon va creándose y Butler anonadado observa la grandeza, Groudon destruye la estructura del mago sin problema, y empieza a caminar sin ninguna dirección definida, Butler aprecia que esa criatura no era un Groudon real, Absol enojado ataca a Groudon, pero no sirvió más que para que Groudon se percatara de la existencia de Absol, ataca a Absol y lo derrota al primer intento, Groudon libera unos tentáculos y con ellos absorbe a todos los Pokémon que alcance, ganando más energías. El mago no tiene que idea sobre qué hacer ahora, y el equipo rocket se ve tan asustado de lo que pasa que terminan siendo atrapados por Groudon, todos los Pokémon de la zona intentan escapar pero resulta en vano.
Butler ve como ese Groudon no es más que pura maldad. En ese momento un tentáculo va hacia Butler pero Diane se interpone y atrapa en su lugar a Diane, haciéndolo porque lo ama.
Los tentáculos atrapan a Brock y May. Luego Groudon dirige sus tentáculos a Ash, Max y Jirachi, pero Jirachi lo impide, Groudon se ve desafiado y manda todos lo tentáculos al trío pero el lanzallamas del Salamence de Butler lo bloquea. Después Flygon vuelve a salir y rescata a los tres de su muy posible fin, logrando esquivar mientras vuela todos los tentáculos, Jirachi desea teletransportarse y lo hace, Jirachi se reaparece justo al lado del mago, y el mago explica como resolver el problema. Y dice que se puede hacer poniendo a Jirachi de nuevo en el dispositivo pero esta vez en modo de revertir, en ese momento un tentáculo atrapa Salamence pero Jirachi lo impide e impide la muerte de mago, Jirachi lo hizo porque vio que no podía ser tan malo porque amaba a alguien.
Ahora planean hacer el plan del mago, vuelan a donde está el dispositivo esquivando todos los tentáculos de Groudon. Llegan al dispositivo y Butler baja a abrir la maquinaria y programarlo para revertir su proceso, pero antes de hacerlo se cae un componente muy importante pero Ash lo atrapa al momento de llegar. Ahora colocan a Jirachi en el dispositivo preparado a hacer el cambio.
Ahora para distraer, Flygon y Salamence atacan a Groudon, mientras eso sucede un temblor pasa y Butler casi cae del dispositivo.
El tentáculo atrapa finalmente a Salamence y a Flygon, al mismo tiempo se inicia el proceso inverso, Groudon empieza a gritar al ver lo que sucede. Jirachi se prepara, un recitáculo iba hacia Jirachi pero el mago lo impidió, diciendo que ahora podrá estar con Diane, Groudon enojado manda más tentáculos a atacar, pero antes de hacerlo Jirachi empieza a resplandecer, ese resplandor levanta a Groudon del suelo al cielo y explota en los cielos. después de eso todos los Pokémon absorbidos aparecieron, incluyendo a Absol y a las personas que absorbió, cuando Butler salió fue a abrasar a Diane, contemplando una increíble esplendor de parte de Jirachi, Jirachi vuelve y Max lo abraza, y todos felices, Jirachi le ofrece un último deseo, Jirachi pide que le cante la canción de cuna porque tiene mucho sueno, May empieza a cantarlo, y luego todos empiezan a cantarlo, y Butler, Diane, y Absol ven lo que sucede, Jirachi agradecido dice que no habría mejor deseo que ese, Max llorando dice adiós y se convierte en gema, de repente se ve como todo el alrededor empieza a brillar, Max dice que Jirachi siempre lo tendrá en su corazón. A lo lejos el equipo rocket se ven aterrados de todo lo ocurrido, pensando que era truco del mago.
Butler y Diane deciden quedarse ahí y acompañan a ir a la ciudad, May olvidó pedir su deseo la última noche. Max oye como Jirachi le dice que siempre será su amigo por siempre, Max se va con el resto.
Después inicia un coro, y Ash y los demás caminan y un hombre de la feria se ofrece a llevarlos a su siguiente destino.