ADVERTISEMENT

Russia and Ukraine trade attacks as US and European officials prepare for peace talks

Published Dec 14, 2025 08:10 am
Moscow pounded Ukrainian power infrastructure with drone and missile strikes on Saturday and Kyiv launched a deadly strike of its own on southwestern Russia, a day before talks involving senior European and U.S. officials aimed at ending the war were set to resume.
In this grab from a video provided by the Press Service Of The President Of Ukraine on Friday, Dec 12, 2025, Ukraine's President Volodymyr Zelenskyy records a video at the road entering of Kupiansk, Ukraine. (Press Service Of The President Of Ukraine via AP)
In this grab from a video provided by the Press Service Of The President Of Ukraine on Friday, Dec 12, 2025, Ukraine's President Volodymyr Zelenskyy records a video at the road entering of Kupiansk, Ukraine. (Press Service Of The President Of Ukraine via AP)
Ukrainian President Volodymyr Zelenskyy said Ukrainian, U.S. and European officials will hold a series of meetings in Berlin in the coming days, adding that he will personally meet with U.S. President Donald Trump's envoys.
"Most importantly, I will be meeting with envoys of President Trump, and there will also be meetings with our European partners, with many leaders, concerning the foundation of peace — a political agreement to end the war," Zelenskyy said in an address to the nation late Saturday.
Trump's special envoy Steve Witkoff and his son-in-law Jared Kushner are traveling to Berlin for the talks, according to a White House official, who spoke on condition of anonymity.
American officials have tried for months to navigate the demands of each side as Trump presses for a swift end to Russia's war and grows increasingly exasperated by delays. The search for possible compromises has run into major obstacles, including which combatant will get control of Ukraine's eastern Donbas region, which is mostly occupied by Russian forces.
"The chance is considerable at this moment, and it matters for our every city, for our every Ukrainian community," Zelenskyy said. "We are working to ensure that peace for Ukraine is dignified, and to secure a guarantee — a guarantee, above all — that Russia will not return to Ukraine for a third invasion."
As diplomats push for peace, the war grinds on.
Russia attacked five Ukrainian regions overnight, targeting the country's energy and port infrastructure. Zelenskyy said the attacks involved more than 450 drones and 30 missiles. And with temperatures hovering around freezing, Ukraine's interior minister, Ihor Klymenko, said more than a million people were without electricity.
An attack on Odesa caused grain silos to catch fire at the coastal city's port, Ukrainian deputy prime minister and reconstruction minister Oleksiy Kuleba said. Two people were wounded in attacks on the wider Odesa region, according to regional head Oleh Kiper.
Kyiv and its allies say Russia is trying to cripple the Ukrainian power grid and deny civilians access to heat, light and running water for a fourth consecutive winter, in what Ukrainian officials call "weaponizing" the cold.
The drone attack in Russia's Saratov region damaged a residential building and killed two people, said the regional governor, Roman Busargin, who didn't offer further details. Busragin said the attack also shattered windows at a kindergarten and clinic. Russia's Defense Ministry said it shot down 41 Ukrainian drones over Russian territory overnight.
On the front lines, Ukrainian forces said Saturday that the northern part of Pokrovsk was under Ukrainian control, despite Russia's claims this month that it had taken full control of the critical city. The Associated Press was not able to independently verify the claims.
The latest attacks came after Kremlin foreign affairs adviser Yuri Ushakov reaffirmed Friday that Moscow will give its blessing to a ceasefire only after Ukraine's forces have withdrawn from parts of the Donetsk region that they still control.
Ukraine has consistently refused to cede the remaining part of the region to Russia.
Ushakov told the business daily Kommersant that Russian police and national guard troops would stay in parts of eastern Ukraine's Donbas even if they become a demilitarized zone under a prospective peace plan — a demand likely to be rejected by Ukraine as U.S.-led negotiations drag on.
Ushakov warned that a search for compromise could take a long time, noting that the U.S. proposals that took into account Russian demands had been "worsened" by alterations proposed by Ukraine and its European allies.
"We don't know what changes they are making, but clearly they aren't for the better," Ushakov said, adding: "We will strongly insist on our considerations."
In other developments, about 480 people were evacuated Saturday from a train traveling between the Polish city of Przemysl and Kyiv after police received a call concerning a threat on the train, Karolina Kowalik, a spokesperson for the Przemysl police, told The Associated Press. Nobody was hurt and she didn't elaborate on the threat.
Polish authorities are on high alert since multiple attempts to disrupt trains on the line linking Warsaw to the Ukrainian border, including the use of explosives in November, with Polish authorities saying they have evidence Russia was behind it.

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.