I came across the same issue earlier, then stumbled upon the answer for this. Hope it will help others for future reference.
long answer short, add a border to your child flex-items. then you can specify margins between flex-items to whatever you like. In the snippet, i use black for illustration purposes, you can use 'transparent' if you like.
#box {_x000D_
display: flex;_x000D_
width: 100px;_x000D_
/* margin: 0 -5px; *remove this*/_x000D_
}_x000D_
.item {_x000D_
background: gray;_x000D_
width: 50px;_x000D_
height: 50px;_x000D_
/* margin: 0 5px; *remove this*/_x000D_
border: 1px solid black; /* add this */_x000D_
}_x000D_
.item.special{ margin: 0 10px; }
_x000D_
<div id='box'>_x000D_
<div class='item'></div>_x000D_
<div class='item'></div>_x000D_
<div class='item'></div>_x000D_
<div class='item'></div>_x000D_
<div class='item special'></div>_x000D_
</div>
_x000D_