milan marathon review

MILAN MARATHON REVIEW

Marketed as Italy’s fastest major marathon, Milan marathon is often promoted as a flat, PB friendly course that combines a big city race atmosphere with efficient organisation and an iconic finish in Piazza del Duomo.

While it may not have the global prestige of races like London or Berlin, Milan has steadily built a reputation among runners chasing personal bests thanks to its speed focused route.

For me, Milan wasn’t originally the plan. I had fully intended for my spring marathon to be at London through the championship entry route, only to realise I’d forgotten to enter. I knew I was in good shape and didn’t want to wait until Amsterdam in October.

So, I started searching for a fast, flat marathon in April that could give me the best possible chance of getting a sub 3 time, and I am so glad I forgot to enter London!

EXPO AND BIB COLLECTION

milan marathon expo and race number

The expo was held at Superstudio Maxi and was open for the three days leading up to race:

  • Thursday: 16:00 – 20:00
  • Friday: 10:00 – 20:00
  • Saturday: 09:00 – 19:00

I went on the Friday at around 4pm and it was quiet, very little queues, which made the whole experience smooth and stress free.

Bib collection was handled outside before entering the main expo space. It was designed in race number which you were emailed a few days prior. Once inside, you’re guided through a range of stalls which had running kit, shoes, nutrition and stalls from race partners.

Over the weekend there’s also a relay marathon and a family fun run, so there was dedicated collection points for these events inside the expo too.

At the end of the expo, you collected your race t-shirt and goody bag. The t-shirt was true to size and the bag itself was quite good quality and I’ve since reused it (mainly to show off that I ran a marathon mind)!

Inside was a mix of practical and local items including toothpaste, pasta, water, and arnica gel. Although I didn’t use the bag drop, I quite liked that the bag had a built in slot designed to hold your race number, which felt like a nice addition.

The expo itself had a good atmosphere without ever feeling overcrowded. There was plenty going on if you wanted to spend time there. They had a message wall where runners could leave notes, bib checking stations, small competitions and an ASICS area where you could test shoes on treadmills.

Across all three days, there was also a full schedule of talks and live events, including interviews with athletes, coaches, ambassadors, and creators, which was shared in advance so you could plan your visit. The expo also had a little cafe for drinks and snacks. We spent about an hour there just wandering around, but if you were in a rush, you could easily be in and out much quicker.

In terms of getting there, it was very straightforward. From central Milan, it’s about 15 to 25 minutes:

  • Take the M2 (green line) towards Abbiategrasso or Assago Forum
  • Get off at Famagosta
  • From the station, it’s a well-signposted walk of around 5 minutes to the venue

RACE DAY

TOILETS

There were plenty of Portaloo’s available around the main start/finish area, and queues seemed manageable. As my hotel was nearby, I didn’t need to rely on them much before the race.

Each wave entrance also had around six toilets next to it, which was useful. While waiting in my start pen, I made one final nervous pre-race toilet trip and was able to leave the pen area to use the toilets right by the start line. Despite the short queue, it took around 10 minutes in total.

The facilities themselves were standard for race day toilets, but importantly, they were stocked with toilet roll. My only complaint was that the one I used was noticeably wobbly, I thought it was going to tip over!

There were additional portaloo’s positioned near many of the water stations along the course, which is reassuring for anyone who may need them mid race, although I gratefully didn’t need to use them.

BAG DROP

I didn’t use the bag drop, mainly because I had family out on the course and my hotel was right by the start line. That said, I did ask a couple of friends about their experience, who shared that the bag drop is positioned roughly midway between the start and finish areas, which makes sense logistically, especially given that the race starts and finishes in different locations. However, this does mean a bit of extra walking is involved pre and post race depending on where you’re staying.

From what I heard, dropping the bag off itself was smooth and well organised. The process was quick, efficient, and didn’t involve long queues.

Where things were less smooth was at the finish. A couple of people mentioned that signage for bag collection wasn’t particularly clear, which led to some confusion trying to locate the exact area. I had someone ask me where the bag drop collection was, which suggests it wasn’t just a one off issue.

Though the bag drop itself seems well run, the post race experience could be improved with clearer signage and directions, especially when you’ve just finished 26 miles and aren’t in the mood for a hunt!

THE START

Starting sectors were assigned based on the marathon or half marathon time submitted during registration, which helped create a smoother and more organised race. Your wave number and section were printed on your bib, with volunteers stationed at each entrance checking runners were entering the correct area.

Each wave had its own designated entry point, while the remainder of the wave section was gated off. We were encouraged to be in their wave around 15 minutes before the official start time. I arrived as advised, although I was still able to briefly leave my wave for one final toilet stop. By the time I got back, my wave was extremely full, so I waited at the entry point and volunteers gradually filtered runners in as the race began.

The wave sections themselves were clearly marked, making it easy to find the correct starting area even with the large crowds.

Atmosphere wise, the start was so good. Though I do always love marathon starts, they’re so unique compared to other races. Music played throughout the build up, the MC kept energy levels high, and the introduction of the elite runners added to it all.

As with most big marathon they done a big final countdown, with runners and spectators joining in together. There were crowds lining both sides of the start, and to be honest I spent it trying not to cry as I get quite emotional with these things.

The race started almost exactly on time, and despite the large field, it didn’t take long to cross the start mat once my wave got moving. The course begins on a long, wide, flat road, which was ideal for settling into pace quickly without major congestion or weaving.

THE COURSE

milan marathon course and race photos

TERRAIN

The race is run almost entirely on closed roads and has a fast course profile which is suited to PB attempts. The route is predominantly flat, with long stretches of wide, straight roads that make it easy to settle into your rhythm and maintain consistent pacing. There are very few sharp turns or technical corners, which helps reduce unnecessary slowdowns.

That said, there are a few terrain features worth paying noting. The most significant are the cobbled sections, which appear periodically throughout the route, particularly in Milan’s historic centre, and total around 2 miles. While these sections aren’t constant, they do interrupt your stride slightly.

The tram lines are another factor to note. These cross multiple parts of the course and, while manageable, require extra concentration, especially later in the race when fatigue sets in.

I think if conditions are wet, both the cobbles and tram tracks could become slippery. In dry conditions, they’re mostly just something to stay aware of, but rain would make caution more necessary. At around mile 23, I saw one runner take a particularly nasty fall near a cobbled/tram section, and unfortunately, it looked like their race was over.

Outside of these patches, the course is good. The combination of flat roads, long straights and relatively few sharp directional changes mean it is capable of producing good marathon times, but one where footing and concentration are slightly more important than on some smoother city marathons.

ELEVATION

Milan marathon is widely described as a flat course, and that’s pretty fair. Across the full race, there’s approximately 350–360ft (around 110m) of total elevation gain, but this is spread gradually across the route rather than concentrated into any significant climbs.

There are no major hills, or big descents to contend with. It allows for consistent pacing and while it isn’t pancake flat from start to finish, the elevation changes are mild enough that most will find minimally disruptive.

Most of the elevation changes come in the form of gentle drags, subtle inclines and the occasional bridge crossing rather than anything overly demanding.

SPECTATORS AND ENTERTAINMENT

Spectator support at Milan is mixed, but for me it worked well.  The strongest crowd support is centred in the busier central sections of the city, where the atmosphere feels far livelier. In these areas, there are plenty of spectators and music that gives a noticeable energy boost. Certain neighbourhoods also had strong support, while others are understandably quieter, so crowd support and entertainment do fluctuate throughout the course rather than remaining constant from start to finish.

That said, thanks to the volume of runners even during quieter stretches where spectators thin out, it didn’t feel quiet because you’re always surrounded by other runners. This helps preserve race energy and can make the quieter sections feel mentally easier than they otherwise might.

There are several organised entertainment points positioned throughout the route, including live music stations, DJs, and local support hubs, which do a good job of breaking the race into sections and providing boosts.

While Milan may not deliver the relentless, crowd noise of marathon majors like London or Berlin it still offers more than enough atmosphere to keep things engaging.

WEATHER

We were lucky with the conditions, which were close to ideal for marathon running. At the start, temperatures were around 13°C with cloudy skies and light winds of around 5 mph. These coolers, overcast conditions made for perfect running weather.

Compared to the previous day, which was noticeably warmer and completely clear skies, race day offered basically perfect conditions. The early 8:15am start also worked well in helping runners avoid the warmer part of the day, which is especially important in a city like Milan where temperatures can rise quickly later in the morning. Due to the cloud covered, even when the temperature increased slightly as the miles went on, it wasn’t noticeable.

It is worth noting that Milan can be more weather dependent than some spring marathons. While we were fortunate on the day, I think you should still be prepared for potentially much warmer conditions, even if race day itself looks mild. In the build-up, when we had warmer weather at home, I made a point of doing some runs at the hottest part of the day just to try and be prepared.

FUEL STATIONS

Fuel stations were frequent and generally well organised, especially in terms of availability. They worked out to be around every 5km. I made a conscious effort this time to take on water at most stations. In previous marathons I’ve struggled with cramping, and I know dehydration has played a big part in that, so this was something I really wanted to improve.

Early on, the stations mainly offered water, served in paper cups, with plenty of volunteers handing them out. As the race went on, the stations became more varied, with electrolyte drinks, bits of fruit and small snacks to help top up energy levels. In terms of stock, there were no issues at all. Everything was well supplied, and I never saw anything run out.

The main challenge, though, was how busy and chaotic the stations could get. With so many runners, people were often slowing down or stopping quite suddenly to grab drinks, which made things a bit unpredictable, and you did need to be alert.

I tried to aim for getting water either right at the start or right near the end where it was less crowded, though that didn’t always work. You also had to be a little bit careful as there was a build up of paper cups on the fall, which although they were actively clearing, the sheer volume meant the ground was largely covered each time.

There were many volunteers at each station doing their best to keep things moving and make sure everyone got what they needed, they did a great job in what is always a tricky environment.

FAVOURITE MOMENT

milan marathon finish line moment

My favourite moment was, without a doubt, the finish, not just crossing the line, but everything that came immediately afterwards. As I crossed the finish, stopped my watch, and stood there taking it all in, the emotions hit. In fact, I was emotional throughout the latter stages of the race, but it became especially overwhelming as I got closer to the finish line. After all the training, preparation, and previous attempts, everything seemed to come out.

What stayed with me was an interaction with one of the finish line volunteers. She could see I was clearly overwhelmed, gave me the biggest smile, and pulled me in for a hug after. It was a simple gesture, but it meant a lot in that moment and made me even more emotional.

I spent quite a while in the finish area, just standing back and watching other runners come through. The finish funnel had a brilliant atmosphere, crowds lining the sides, loud cheering, and volunteers clapping and encouraging every single finisher. There was also a real sense of shared emotion, with runners hugging each other after crossing the line, which made it feel even more surreal.

While watching others finish, I couldn’t help but think about what everyone had gone through to get there, every runner with their own story, challenges, and reasons for being on that course.

No one was rushed through the finish area either. The volunteers were patient, supportive, and genuinely added to the atmosphere rather than managing it.

THE FINISH

milan marathon after the finish

Milan marathon does put on superb finish in Piazza del Duomo, with the Duomo Cathedral creating a stunning backdrop. The final stretch is lined with cheering spectators, crowd barriers, and a long pink carpet that guides you to the finish gantry and clock, something I was grateful for as it covered sections of cobbles in those final metres.

Once over the line, volunteers were fantastic, handing out medals and support. There were photographers capturing the moment and medical support was clearly available if needed. The refreshment bag was ok, with fruit, water, electrolytes and some savoury snacks, although I personally felt more fluids were needed afterward.

One slight downside was the lack of a clear meeting point, so planning is worthwhile if you want to meet up with people at the end. The PB bell was a fun final touch, adding to what was overall an emotional finish experience.

THE MEDAL

milan marathon medal

The medal was handed out just a few metres after crossing the finish line, with volunteers placing it over your head. There was also a medal engraving stall located right next to the finish, where I had mine personalised for €15. The process was quick too, taking around five minutes, which made for a nice keepsake from the day.

POST RACE

COURSE & EVENT EXPERIENCE

Milan marathon is undoubtedly a fast, flat race created for PB potential. While it’s not the most scenic course, with limited standout views beyond landmarks like San Siro Stadium and the Duomo finish, I came to Milan chasing a time rather than sightseeing and it delivered on that front. If you’re looking for a beautiful, scenic marathon, this may not be the one. Though I done a day trip to Lake Garda the day before and that filled that void anyway!

The event itself felt well organised, with multiple pacing groups clearly visible thanks to balloons for different target times. Although I didn’t stick with a pace group, when I caught one during the race, the pacers were encouraging and supportive, even sharing water within the group, which was nice to see.

One slight frustration for me was the course measurement versus GPS. I fully expect some discrepancy in major marathons, but my watch was showing longer than expected early on, which became annoying as I adjusted my pace to stay on target. By later stages, many runners seemed to have significantly over distance readings too.

Whether it was GPS drift or course setup it did get in my head for a bit. However, once I reset my mindset and focused on the experience rather than the finish, I was able to settle in and push. 

In the end, that extra pressure helped me dig deeper and I crossed the line in 2:57:35. My fourth attempt at sub 3 and a result I’m really happy with. For me, Milan did exactly what I wanted, it gave me the platform for a PB.

I felt emotional from start to finish and overall, regardless of the distance on the watch it was a memorable, incredible experience that will stay with me.

COST

General entry for the marathon started at around €100 for early bird registration, gradually increasing closer to race day, with final prices reaching approximately €120. Considering how much running costs have increased in recent years; this feels competitive for a major European city marathon.

This year, there were around 15,000 entries available, and the race reportedly sold out roughly two weeks before race day. While it wasn’t an immediate sell out, it’s still not something you want to leave too late, as missing out near the final stages of registration would be very possible. From what I understand, this may also have been the first year the event fully sold out.

Something I appreciated is that Milan had a performance based pricing promotion. The organisers offer discounts for runners with qualifying marathon times, which is something I haven’t personally seen offered in many other major city marathons.

I was able to get 40% off my entry fee thanks to a previous marathon time, which made it excellent value for a race of this calibre. For faster runners, there is even the possibility of completely free entry.

The “fast runner” tiers are structured as follows:

  • 100% discount: Sub-2:30 (men) / Sub-3:00 (women)
  • 40% discount: Sub-2:44 (men) / Sub-3:14 (women)
  • 10% discount: Sub-3:00 (men) / Sub-3:30 (women)

It’s worth noting that the discount must be arranged directly with the organisers before registering, by providing proof of your qualifying time.

It cannot be applied retrospectively, so it’s important to contact them in advance (in my case, I emailed them beforehand and was issued a discount code before completing registration).

You can enter at milanomarathon.it

INCLUDED

  • Every finisher got a €20 wizz airline voucher emailed a few days post marathon
  • Milan marathon race t-shirt (collection at the expo).

TRAVEL & GETTING THERE

Milan has two main airports, Milan Malpensa Airport and Milan Bergamo Airport. Malpensa is closer to the city centre, but Bergamo is often significantly cheaper for flights.

I flew with Ryanair from London Stansted Airport to Bergamo. The flight cost £83 per person, plus £40 for luggage, and took around 1 hour 40 minutes.

From Bergamo Airport, I used Flibco to get into the city. The bus departs directly outside the terminal and goes to Milano Centrale railway station. Tickets were £12.22 pp and the journey took about 50 minutes. Buses run roughly twice an hour, and I could use my ticket for any buses departing regardless of the time I booked. I pre booked, but you can also buy tickets on arrival.

Once at Milano Centrale, getting around is easy via the metro or on foot. I mainly used public transport, though I did take one Uber to the central station from my hotel, for a day trip to Lake Garda, which cost around £14 one way.

ACCOMMODATION

I stayed at Living Suites.

For race purposes, the location couldn’t have been better.

For three people staying three nights with breakfast, the total came to £766, plus around £50 in city tax. While it’s not the cheapest option, you’re paying for a perfect race day location, it’s literally on the start line. This was all I really cared about prior to booking as it meant I had zero stress on race morning. Plus, it enabled me to avoid any toilet queues!

The finish area was around a 2km walk away and the bag drop was roughly 1km from the hotel (although I didn’t use it). Everything felt easily accessible and manageable on foot. However, it is about a 10-minute walk to the nearest metro, though a tram stop is about a minutes’ walk which can take you to the metro.

The hotel itself was clean, comfortable and well equipped. Breakfast was served in a nearby bar just outside the building and was of a good standard. The only downside was timing. Breakfast didn’t start until 8:00am, however the race started 8:15am. I did know this in advance and brought my own food, but it would have been ideal if they had adjusted timings slightly for such a big event.

GEAR

WHAT I WORE

  • SOAR Marathon Speed shorts. These were perfect. The storage is excellent; I was able to carry all my gels comfortably without anything bouncing around. They stayed in place the entire race, didn’t ride up at all, and most importantly, I had zero chafing.
  • SOAR running club vest. Lightweight, breathable and comfortable from start to finish. No rubbing or irritation. I chucked some water over me at some of the stations, and it didn’t hold any water which I appreciated too.
  • SOAR running racing socks. I opted for the racing version (slightly lighter than the crew socks I’ve reviewed previously and without the rib). I can’t fault them at all. No blisters, hot spots or issues at all.
  • Puma Fast-R 3 Trainers. These are easily my favourite race day shoes. They feel aggressive and fast, when I put them on, I know it’s time to work. I wore the Fast-R 3 in my previous marathon and felt they became a bit unsupportive in the final 10km. This time, though, I had no issues at all, they felt strong and responsive right to the finish. That’s probably down to a mix of better leg strength from more gym work and a course with fewer cobbled sections.

HOW I FUELLED

BEFORE

The race started at 08:15, so I kept my pre-race routine structured and, most importantly, stuck to what I’d already tested in training.

At 05:30, I started with a NOMIO Sports Formula Drink. This has become a staple for me before big efforts and is something I’ve been using in racing and PB every time!! So psychologically it’s also great.

At 06:15, I had porridge with honey, followed by a slice of toast with banana and honey at 07:00. It did take me a while to get it all down (pre-race nerves and all).

Alongside this, I had a mix of Puresport Electrolytes and Maurten Drink Mix right up until the start. This gave me a steady intake of carbs and hydration without feeling too heavy.

Everything here had been practiced multiple times during long runs, and that consistency paid off, it’s something I’d really recommend focusing on ahead of race day rather than experimenting on the day itself.

DURING

Race day fuelling didn’t go entirely to plan… thanks to airport policies (and my poor awareness).

I had originally planned to use a mix of Puresport energy gels and Precision 90g gel, but my Precision gels got confiscated at the airport for being over the liquid limit (150ml…lesson learned).

So, I had to improvise. In the end, I used:

  • 4 × Puresport gels
  • 1 × High5 energy gel aqua
  • 2 × Maurten gel (kindly sourced mid-weekend thanks to Simon)!

I took my first gel at mile 5, then continued roughly every 4 miles, with an extra one around mile 22.5, just because. Despite the last minute changes, this worked well.

It’s something I’ve really focused on in training and this was probably the first marathon where I felt like I nailed the fuelling. Energy levels stayed consistent, and I avoided the late race drop off.

Hydration wise, I made a conscious effort to improve. I don’t usually take on any water during races, but I’ve cramped in previous marathons and know dehydration plays a big role. This time, I did take water at several stations, though still not a huge amount, mainly because I find the cups tricky to drink from at pace and a risk of a stitch.

I did pick up a slight stitch around mile 24, but it was manageable and far preferable to the cramping I’ve experienced before.

PERFORMANCE

Milan was my fourth serious attempt at sub 3, and finally, this was the race where everything came together.

I’d fallen short three times before, so coming into Milan, I knew I had the fitness and determination, but I carried the weight of previous disappointments. That inevitably added to internal pressure, especially when early GPS discrepancies started creeping in and I realised I may need to work even harder than planned to stay on target. For a few miles, I let that get into my head. But eventually, I reset, reminded myself to trust my training, stay present and simply race. From that point on, I locked in.

The flat, fast nature of Milan’s course gave me the opportunity I needed, even if the cobbles and tram tracks required focus. It’s not a course where you can completely switch off, but if you stay mentally engaged, it offers PB potential.

Crossing the line in 2:57:35 felt surreal, even now it’s hard to describe. After three previous attempts, finally seeing that time on my watch was overwhelming. As I entered Piazza del Duomo, I genuinely couldn’t stop smiling, crying and soaking it all in. Months/years of hard training, setbacks and near misses all seemed to pour out at once.

The support in those final moments was incredible not just from spectators, but from other runners, volunteers and my own family and friends, who were able to track me throughout the race via the official marathon app. Knowing they were following my progress and waiting at the finish made the experience even more special.

For me, it wasn’t just a marathon PB, it felt like the reward for years of persistence.

WOULD I RECOMMEND IT?

milan marathon recommendation

Absolutely. If you’re looking for a marathon with PB potential, relatively simple logistics, competitive pricing and good organisation, Milan is a fantastic choice. It may not offer the most scenic course compared to some European races, but what it does provide is a fast and flat route which is well supported.

The race weekend was smooth from start to finish and transport was easy.

CONCLUSION

This marathon will always hold a little place in my heart. After three previous attempts at sub 3, this was finally the race where all the hard work, lessons and determination paid off. It gave me the platform, conditions, and atmosphere I needed to achieve a goal I’d been chasing for some time.

From the well organised expo, smooth race day logistics, and fast course to the unforgettable finish, Milan delivered an experience that was both emotionally powerful and performance driven.

What I’ll remember most, though, is that final stretch, the pink carpet, the crowds cheering and the overwhelming realisation that I’d finally done it. Smiling, crying, and completely overcome with emotion, it was one of the most rewarding moments I’ve had in running.

For me, Milan wasn’t just another marathon. It was the marathon where I broke three hours.

Back to blog