Элемент, который является самым высоким в порядке размещения (max z-index), получит событие onmouseover.
Чтобы достичь желаемого эффекта, оберните div2 в другой div с самым высоким z-индексом, дайте div2 более низкий z-индекс, чем ваш оверлей.
Так как div3 имеет ту же ограничивающую рамку, что и div2, мы присоединяем к нему событие onmouseover, и обработчик событий действует на div2.
<body>
<div id="div1" style="position: absolute; z-index: 10; left:0; top; 0; width: 100%; height: 100%; opacity: 0.25; background-color: black;"></div>
<div id="div3" style="z-index: 20; position: relative;">
<div id="div2" style="z-index: 0; position: relative;">
</div>
</div>
</body>