Trong nhiều năm, Abe Portman đã kể nhiều câu chuyện cho đứa cháu Jacob nghe về tuổi thơ chiến đấu với quái vật và khoảng thời gian trong Thế Chiến II ông sống tại "Trại trẻ đặc biệt của cô Peregrine" ở Cairnholm, Wales. Mọi người đều cho rằng những lời ông nội của Jake kể là chuyện nhảm nhí, không có thật. Rồi một ngày kia, ông nội qua đời trên tay Jacob, cái chết mờ ám giữa bãi đất sau nhà, nơi mà có thể có quái vật truy đuổi, cào xé ông trở thành nỗi day dứt không yên cho cậu.
Cuối cùng Jacob đã quyết định cùng bố đến đảo Cairnholm, nơi tọa lạc trại trẻ của cô Peregrine năm xưa. Cô Peregrine chào đón cậu và giải thích rằng cô thuộc loại người Đặc biệt được gọi là "Ymbrynes", những người có thể biến thành chim và thay đổi vòng thời gian. Và đây là nơi bắt đầu chuyến du hành về quá khứ của Jacob. Là trại trẻ mà trước kia ông sống, nơi có cô bé Emma tóc vàng lơ lửng trong không trung – lơ lửng theo đúng nghĩa đen, nơi có cặp song sinh vô diện mặc đồ trắng cũ mèm tựa như hồn ma trong phim kinh dị, nơi có cô bé nâng được đá tảng khổng lồ hay cậu bé tàng hình mặc đồ lịch thiệp, vô tư đá bóng như bao đứa trẻ khác. Jake sau đó cũng biết được rằng cậu cũng là một đứa trẻ Đặc biệt giống như ông nội, với khả năng nhìn thấy được những sinh vật tàng hình trong những câu chuyện Abe từng kể, còn được gọi là bọn "Hồn rỗng"; thêm vào đó, những kẻ Đặc biệt bị biến dạng đang tìm cách thí nghiệm lên các Ymbryne để có được nguồn năng lượng bất tử. Được dẫn dắt bởi Ông Barron, một kẻ Đặc biệt có khả năng biến hình, chúng bắt đầu săn lùng những đứa trẻ đặc biệt để lấy đi những con mắt để ăn nhằm phục hồi lại hình dáng con người. Những kẻ như thế này được gọi là bọn "Xác sống".
Một Ymbryne bị thương là Cô Avocet đã tới và giải thích rằng Barron bất ngờ tấn công dòng thời gian Tháng 1 năm 2016 của bà tại Blackpool, Anh, và đã giết toàn bộ những đứa trẻ tại đó. Hắn đang cố gắng thực hiện lại thí nghiệm đã thất bại kia bằng cách sử dụng nhiều Ymbryne hơn. Cô Peregrine cùng lũ trẻ và Cô Avocet nhanh chóng sửa soạn đồ để rời đi. Trong khi đó, Jake trở lại năm 2016 và nhận ra bọn Hồn rỗng đã tới đảo, bèn quay trở lại hang động để cảnh báo cho các bạn của mình. Tuy nhiên, cậu lại bị đuổi theo bởi Barron, lúc đó đang biến hình thành một nhà điểu học.
Barron tiết lộ rằng hắn đã cố gắng lấy thông tin địa điểm vòng thời gian của Cô Peregrine từ Abe, nhưng Hồn rỗng Malthus của hắn đã giết Abe trước khi hắn có thể làm được điều đó. Sau đó hắn đã giả dạng Bác sĩ Golan và động viên Jake đi tới hòn đảo có thể dẫn cậu tới vòng thời gian. Sau khi sử dụng Jake làm con tin, Barron đã ép Cô Peregrine tự nhốt mình trong hình dạng chim và mang cô về Blackpool, bỏ mặc Jake, Cô Avocet và những đứa trẻ khác cho Hồn rỗng Malthus.
Malthus tới và giết Cô Avocet, nhưng Jake và lũ trẻ đã trốn thoát ngay khi bom từ máy bay của Không quân Đức rơi xuống phá hủy ngôi nhà và giết chết Malthus. Không có Cô Peregrine tái khởi động, vòng thời gian đóng lại, và bọn trẻ bị kẹt lại năm 1943. Sau khi mang chiếc tàu khách The Augusta chìm dưới đáy biển lên mặt nước, bọn trẻ lái tàu tới Blackpool và bước vào vòng thời gian Tháng 1 năm 2016, chiến đấu với các Xác sống và đội quân Hồn rỗng của Barron và giải cứu Cô Peregrine và các Ymbrynes khác. Barron giả trang thành Jake để lừa bọn trẻ khi chúng đến giết hắn. Nhưng khi con Hồn rỗng cuối cùng tiến tới, Jake nhìn thấy nó và tránh đi, bỏ mặc Barron bị giết bởi Hồn rỗng, và sau đó con Hồn rỗng này cũng bị chính Jake giết.
Sau khi tiêu diệt toàn bộ bọn Hồn rỗng và tên Barron, những đứa trẻ đặc biệt quay trở về vòng thời gian của mình tại ngôi nhà ma quái của một công viên, Jake chia tay những đứa trẻ đặc biệt và ở lại (vì bọn Hồn rỗng đã bị tiêu diệt trong quá khứ nên ông của Jake vẫn còn sống). Sau khi những đứa trẻ đặc biệt đi rồi, Jake quay về nhà với ông mình. Khi về nhà, ông của cậu đã tặng cậu món quà sinh nhật sớm-đó là 1 số tiền ngoại tệ để đi tìm lại những đứa trẻ đặc biệt.